和equals的區別

2021-10-01 20:20:21 字數 945 閱讀 3674

一、物件型別不同

(1)equals():是超類object中的方法。

(2)==:是操作符。

二、比較的物件不同

(1)equals():用來檢測兩個物件是否相等,即兩個物件的內容是否相等。

(2)==:用於比較引用和比較基本資料型別時具有不同的功能。

三、執行速度不同

(1)equals():沒有==,執行速度快。

(2)==:執行速度比equals()快,因為:==只是比較引用。

四、equals的特點

(1)自反性:對任意引用值x,x.equals(x)的返回值一定為true;

(2)對稱性:對於任何引用值x,y,當且僅當y.equals(x)返回值為true時,x.equals(y)的返回值一定為true;

(3)傳遞性:如果x.equals(y)=true, y.equals(z)=true,則x.equals(z)=true ;

(4) 一致性:如果參與比較的物件沒任何改變,則物件比較的結果也不應該有任何改變;

(5)非空性:任何非空的引用值x,x.equals(null)的返回值一定為false 。

五、==的特點

(1)== 比較的是變數(棧)記憶體中存放的物件的(堆)記憶體位址,用來判斷兩個物件的位址是否相同,即是否是指相同乙個物件。比較的是真正意義上的指標操作。

(2)比較的是操作符兩端的運算元是否是同乙個物件。

(3)兩邊的運算元必須是同一型別的(可以是父子類之間)才能編譯通過。

(4)比較的是位址,如果是具體的阿拉伯數字的比較,值相等則為true,如:

int a=10 與 long b=10l 與 double c=10.0都是相同的(為true),因為他們都指向位址為10的堆。

Equals 和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...

equals 和 的區別

equals 方法 是string類從它的超類object中繼承的 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等。用於比較引用 和 比較基本資料型別時具有不同的功能 1.比較基本資料型別,如果兩個值相同,則結果為true 2.而在比較引用時,如果引用指向記憶體中的同一物件,結果為true s...

和equals的區別

和 equals 的區別 1.是乙個運算子。2.equals則是string物件的方法,可以.點 出來。我們比較無非就是這兩種 1 基本資料型別比較 2 引用物件比較 1 基本資料型別比較 和equals都比較兩個值是否相等。相等為true 否則為false 2 引用物件比較 和equals都是比較...