1.對於基礎資料型別,使用「=="比較值是否相等;
2.對於復合資料型別(類),使用equals()和「==」效果是一樣的,兩者比較的都是物件在記憶體中的存放位址(確切的說,是堆記憶體位址)。
3.對於string、integer、date等覆蓋了equals()方法的型別,「==」比較的是存放的記憶體位址。而equals()的結果則由覆蓋後的**決定。
4.string型別中,equals()比較的是兩字串內容是否相同。如:
1
2
3
4
5
6
7
8
string s1 =
"hello"
;
string s2 =
"hello"
;
s1.equals(s2)返回
true
;
s1==s2返回
true
;
string s1 =
"hello"
;
string s2 =
new
string(
"hello"
);
s1.equals(s2)返回的還是
true
;
但是s1==s2返回
false
;
Java 中equals 和 的區別
疑問 equals 和 是用來幹什麼的?1 比較8種基本資料型別的引用位址,是否一樣 2 比較引用物件的內容,即堆的記憶體位址,是否一樣 疑問 兩者區別?public boolean equals object o 如果不重寫equals 兩者是沒有區別的。分析下string中兩者的區別 strin...
Java中「equals「和「 「的區別
1.在基本資料型別中 對於基本型別而言,判斷的是兩個變數的值是否相等 equals 不能用於基本資料型別,如果要比較,就需要使用基本型別對應的包裝類 2.在引用型別中 比較的是變數的值在棧記憶體中存放的物件的堆記憶體位址 即比較引用的記憶體位址 equals 比較的是兩個物件的值是否相同 不是比較記...
java中equals和 的區別
比較的是位址,可以比較物件和屬性 equals只用來比較物件,equals內部是由 實現的,所以比較的也是位址,因為每個物件都繼承了object自帶equals方法,但有些類庫重寫了equals方法。1.首先對於屬性的,因為是八種基本資料型別之一 byte,short,char,int,long,f...