== 比较的是值是否相等 如果是基本数据类型的比较,则直接比较的是储存的值是否相等 如果是引用类型比较,则比较的是所指向对象的地址值是否相等
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 }