String的equals和==的小实验

 

 

 

1: String s3="huangyang";

   2:   
   3:  String s4="huangyang";
   4:   
   5:  System.out.print(s3.equals(s4));
   6:   
   7:  System.out.println(s3==s4);
   8:   
   9:  String s5=new String("huangyang");
  10:   
  11:  String s6=new String("huangyang");
  12:   
  13:  System.out.print(s5.equals(s6));
  14:   
  15:  System.out.println(s5==s6);

 

运行结果:

truetrue
truefalse

 

第一种定义String的方式,实际是存储在堆中的同一个位置,所以==显示true,由于同一个位置内容相同,equals显示true;

第二种显示定义字符串为一个类,表明String不是基本类型,而是引用类型,两次声明在堆中定义出两个空间存储s5和s6,尽管他们内容相同,还是两个不同的堆空间存储。

        所以equals显示true,==由于看的是比较对象的引用,所以false

posted @ 2012-04-20 12:50  bevin-H  阅读(162)  评论(0编辑  收藏  举报