介绍一下 equals 与 ==
的区别:
-
==
:比较的是变量存放在堆内存的对象的地址,判断两个对象的地址是否相同,是否指向同一个对象。也就是判断引用是否相同。 -
equals()
不能用于基本类型的比较;是对字符串的内容进行比较 -
对于基本类型,
==
比较的是值; 对于引用类型,==
比较的是地址;String a = "abcd"; String b = "abcd"; if (a == b) { System.out.println("true"); // 当然是true啦 } else { System.out.println("false"); }
-
如果没有重写equals,equals就相当于
==
;如果重写了equals方法,equals比较的是对象的内容;public class Main { public static void main(String[] args) { MyTest test1 = new MyTest(); MyTest test2 = new MyTest(); if (test1.equals(test2)) { System.out.println("true"); } else { System.out.println("false"); } } } class MyTest { int a = 1; int b = 2; }
因为我们可以从源码中了解到,不重写就是
==
祝大家每日开心快乐