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 }

 

posted on 2013-01-30 11:59  money@money  阅读(284)  评论(0编辑  收藏  举报