❶ equals()和==到底有什麼區別啊
1、功能不同
"=="是判斷兩個變數或實例是不是指向同一個內存空間。
"equals"是判斷兩個變數或實例所指向的內存空間的值是不是相同。
2、定義不同
"equals"在JAVA中是一個方法。
"=="在JAVA中只是一個運算符合。
例子:
Student student1 = new Student();
Student student2 = new Student();
System.out.println(student1.equals(student2));
System.out.println(student1 == student2);
3、運行速度不同
"=="比"equals"運行速度快,因為"=="只是比較引用。
"equals"比"=="運行速度要慢。
(1)equals源碼怎麼使用擴展閱讀
equals()方法特點:
1、自反性:x.equals(x)返回true;
2、對稱性:若x.equals(y)為true,則y.equals(x)亦為true;
3、傳遞性:若x.equals(y)為true且y.equals(z)也為true,則x.equals(z)亦為true;
4、一致性:x.equals(y)的第一次調用為true,那麼x.equals(y)的第二次、第三次、第n次調用也均為true,前提條件是沒有修改x也沒有修改y;
5、對於非空引用x,x.equals(null)永遠返回為false。
❷ .equals()到底是什麼意思
.equals() 在Java中判斷是否相等,與 == 的區別是 .equals() 只判斷值是否相等,不管兩者是否存在同一地址。而 == 則是判斷值與存在地址都得相等
(2)equals源碼怎麼使用擴展閱讀:
由equals的源碼可以看出這里定義的equals與==是等效的(Object類中的equals沒什麼區別),不同的原因就在於有些類(像String、Integer等類)對equals進行了重寫,但是沒有對equals進行重寫的類(比如我們自己寫的類)就只能從Object類中繼承equals方法,其equals方法與==就也是等效的,除非我們在此類中重寫equals。
另外,"=="比"equals"運行速度快,因為"=="只是比較引用。