java中 不同的引用变量指向同一变量 首地址为什么不会相同
追问:应该是不同的引用变量指向同一对象 引用变量的值是对象的内存存储地址 对象的内存存储地址是固定的 怎样不同的引用变量指向时 会导致不一样了 ?:??
String str1= new String("abc");
String str2= new String("abc");
if(str1==str2)//比较引用变量的值,及各自所对应的首地址
System.out.println("true");
else
System.out.println("false");
输出的false
答案:你的意思是首地址相同了?因为他们的所指向的地址相同,地址当然一样了
其他:s1和s2分别指向两个创建的String 类对象,尽管创建的两个 String实例对象看上去一样,但他们是两个彼此独立的对象,是两个占据不同内存地址的不同的对象.
String s1 = new String("hello");
String s2 =new String("hello");
s1和s2分别是两个对象的句柄,也就是s1和s2的值分别是两个对象的内存地址,显然他们的值是不相等的.
String str1 = new String("abc");
String str2 = new String("abc");
String str3 = str1;
str1和str3是同一对象,他们相等,他们和str2不是一个对象,他们不相等
当然,如果你用 equals()方法比较他们的内容,他们三都相等
上一个:Struts Problem Report的问题!求高手解决 问题异常如下
下一个:linkedlist中的addfirst()