“==”判断符号左右两个对变量(引用类型)是否指向同一内存地址
equals()方法判断两个对象是否一样(所有成员的值相同)
例1:
String a = "abc";
String b = "abc";
System.out.println(a == b); //true
System.out.println(a.equals(b)); //true
在例1中,“abc”是放在常量池(constant pool)中的,所以,虽然a,b都等于“abc”,但是内存中只有一份副本,所以“==”的结果为true
例2:
String a = new String("abc");
String b = new String("abc");
System.out.println(a == b); //false
System.out.println(a.equals(b)); //true
在例2中,new方法决定了两个不同的string "abc"被创建放在了内存heap区(堆上),分别被a和b所指向,因此“==”返回了false