遇到那种直接赋值的成员变量,这种赋值的执行过程是先看字符串常量池中有没有value数组为[‘a’,‘b’,‘c’]的String对象,如果没有的话就创建一个,有的话就拿到他的一个引用。所以我们引用的变量的地址是一样的。但是对象的地址不一定是一样的。
public class Test {
private String name="abc";
public static void main(String[] args) {
Test test=new Test();
Test testB=new Test();
String result=test.equals(testB)+",";
result+=test.name.equals(testB.name)+",";
result+=test.name==testB.name;
System.out.println(result);
}
}