一、==
== 比较的是值是否相等
如果是基本数据类型的比较,则直接比较的是储存的值是否相等
如果是引用类型比较,则比较的是所指向对象的地址值是否相等
二、equals
equals不能用于基础数据类型的比较
equals比较的是是否是同一个对象
equals是Object的方法,如果没有重写equals方法,比较的是引用类型变量所指向对象的地址值是否相等
如String,Date等对equals方法进行了重写,则equals比较的是只想对象的内容是否相等
@Test
public void test1() {
int a = 1;
int b = 1;
System.out.println("a == b: " + (a == b));// true
String m = "a";
String n = "b";
String x = new String("a");
String y = new String("a");
System.out.println("m == n: " + (m == n)); // false
System.out.println("m equals(n): " + (m.equals(n))); // false
System.out.println("m == x: " + (m == x)); // false
System.out.println("m equals(x): " + (m.equals(x))); // true
System.out.println("x == y: " + (x == y)); // false
System.out.println("x equals(y): " + (x.equals(y))); // true
}