本帖最后由 一木榜公 于 2013-7-14 23:41 编辑
大家都知道 String s1=“abc”; 还有一种是 String s2 = new String(“abc”);我现在只知道 s1 并不等同于s2。但是为什么?
s1,s2接收的是 对象的引用(也就是地址),"abc"字符串 存在常量池中,new String("abc")字符串在堆内存中,这是两个不同的对象,
地址不一样,
所以,s1!=s2
这两个语句还有一个区别是:
s1语句中只有一个对象,s2语句中有两个对象("abc" 与 s2指向的对象)
system.out.println(s1==s2)为什么会输出 false 呢???
s1,s2指向的对象地址不一样,所以false
|