Java基础——java的引用问题
1.
public class EasyError1 {
class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public List<Student> getList(List<String> names){
List<Student> studentList=new ArrayList<Student>();
Student student=new Student();
for(String str:names){
student.setName(str);
studentList.add(student);
}
return studentList;
}
public static void main(String[] args) {
EasyError1 easyError1=new EasyError1();
List<String> list=new ArrayList<String>();
list.add("pitt");
list.add("tom");
list.add("weiling");
List<Student> studentList= easyError1.getList(list);
for(Student student:studentList){
System.out.println(student.getName());
}
}
}
/******************************************************
* the results in console:
* weiling
* weiling
* weiling
*因为Student student=new Student();写在了循环的外面,在循环里每次都把名字放在了一块堆内存里,并把引用
*存放在了list中,只是一个引用,而不是三个不同的引用存放在list中,最后,这个引用只想向了“
相关文档:
package info.gnuhpc;
/**
* @author gnuhpc email: warmbupt@gmail.com blog: http://gnuhpc.info
* @date 2010-1-22
* @bugs 不支持多音字处理
*/
public class PinyinConv {
// 简体中文的编码范围从B0A1(45217)一直到F7FE(63486)
private static int BEGIN = 45217;
private static int ......
UnsupportedClassVersionError
不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。
java.lang.VerifyError
验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。
java.lang.VirtualMachineErr ......
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
package mypakage;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; ......
设计模式
一个程序员对设计模式的理解:
“不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把锁的模式,目的仅仅是着眼于解决现在的问题,而设计模式的“复杂&rdq ......
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。
1.java -verbose:class
在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。
verbose和verbose:cla ......