本帖最后由 夏添 于 2013-3-7 01:08 编辑
==用于引用变量比较时,是比较地址的
String s = new String(“abc”);//创建两个对象,一个 s = new String() ,一个"abc",暂时这么理解吧,
String s1 = “abc”; //一个对象,"abc"
String s2 = new String(“abc”);//创建两个对象,一个 s = new String() ,一个"abc",暂时这么理解吧,
System.out.println(s == s1);
System.out.println(s == s2);
System.out.println(s1 == s2);//两个对象,地址肯定不同的了
输出结果是:false false false
System.out.println(s == s1.intern());//s指向堆中对象,s1.intern()指向池中"abc"
System.out.println(s == s2.intern());//s指向堆中对象,s2.intern()指向池中"abc"
System.out.println(s1 == s2.intern());//s1.intern()指向池中"abc",s2.intern()指向池中"abc"
求最后输出是什么 false false true |