zhiyinjixu

  博客园  :: 首页  ::  :: 联系 ::  :: 管理

 

String str1 = new String("abc");
String str2 = new String("abc");
String str3 = str1;
System.out.println( str1==str3 ); //输出true
System.out.println( str1==str2 ); //输出false
System.out.println( str1.equals(str3) );//输出true
System.out.println( str1.equals(str2) );//输出true
str3 = "sss";

 

 

 

综上所述:
规律:
①== 比较的是这两个对象的地址(栈和堆),其实如果如果两个对象的堆地址一样的话,栈的内存地址肯定是一样的。此时他们指向的是同一段堆内存。也就是说当对象指向的是同一段堆内存时才为true。
②equals()方法 比较的是两个对象的堆内存的内容是否一样,不管是不是同一段内存,只要一样则为true

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2012-01-15 15:58  zhiyinjixu  阅读(131)  评论(0)    收藏  举报