在Java中,每一个对象都有一个地址空间,在这空间保存着这个对象的值。 
 
String的equals是对比他们的字符和字符序列是否是相同 
 
Object对比的是引用的地址是否相同! 
 
用下面的例子来说明。 
String str1 = "aaa"; 
String str2 = "aaa"; 
String str3 = new String("aaa"); 
str1与str2使用的是同一地址空间,因为String使用的是对象池,对象池概念你再去百度一下。 
而str3是new出来的,就相当于开辟了新的空间,地址也就跟str1,str2不一样的。 
所以,下面输出的结果为: 
System.out.println(str1.equals(str2));   --true,地址一样,值也一样 
System.out.println(str1.equals(str3);     --true,地址不一样,但是值一样 
System.out.println(str1 == str2);           --true,地址一样,值也一样 
System.out.println(str1 == str3);           --false,地址不一样,值一样,还是false 
 |