1 public class test { 2 public static void main(String[] args) 3 { 4 //字符串常量会共享同一个匿名String对象,即字符串常量池中共享的,所以比较会相等 5 String st1="test"; 6 String st2="test"; 7 System.out.println(st1==st2); //TRUE 8 //通过new String的形式创建的两个String对象,即使他们的内容相同, 9 //由于指向的对象地址不相等,所以还是不相等 10 String st3=new String("test"); 11 String st4=new String("test"); 12 System.out.println(st3==st4); //FALSE 13 //所以比较两个String对象的时候,最好用equals()方法或者用string的intern()方法把两个字符串都转换为常量池中的字符串常量 14 System.out.println(st3.equals(st4)); //TRUE 15 System.out.println(st3.intern()==st4.intern()); //TRUE 16 System.out.println(st1==st3.intern()); //TRUE 17 } 18
我的博客:www.while0.com我的博客:www.shishangguan.net 19 }