“==” 比较的是 两个变量的值(即两个引用变量的地址)
“equals”比较的是 两个对象 的 内容 是否一样
例如:
public class Person
{
public static void main(String[] args)
{
String str1=new String("abc");
String str2=new String("abc");
String str3=str1;
if(str1==str2)
System.out.println("true");
else
System.out.println("false"); // 结果 false 因为比较的是 两个引用变量的首地址 也就是栈内存的值
if(str1==str3)
System.out.println("true");
else
System.out.println("false"); // 结果 true 因为他们指向的是堆中同一个对象的首地址 他们在栈中的值是一样的
if(str1.equals(str2))
System.out.println("true");
else
System.out.println("false"); //结果 true 因为 equals 比较的是两个对象的内容
}
}