java中的equals與
『壹』 java中equals和equal的區別
equals()是object的方法,所以只是適合對象,不適合於基本類型,equals()默認是用"=="比較兩個對象的內存地址,如果想要比較兩個對象的內容,要重寫equals()方法才可。
equal:是用來比較兩個對象內部的內容是否相等的,由於所有的類都是繼承
自java.lang.Object類的,所以如果沒有對該方法進行覆蓋的話,調用
的仍然是Object類中的方法,而Object中的equal方法返回的卻是==
的判斷,因此,如果在沒有進行該方法的覆蓋後,調用該方法是沒有
任何意義的。
『貳』 Java里的equals和==的區別是不是equals是比較內容,==是比較地址的
一般對象equals是比較地址,equals時地址一樣,值也一樣:java 對象繼承自 Object類,一般對象調用的都是Object的equals方法,查看源碼發現:Object邏輯就是的就是==。
String 也是繼承Object,但是重寫了equals方法,String的equals是比較了值得,這個比較特殊。
『叄』 java基礎中equals和==的區別
首先、==是判斷兩個變數或實例是不是指向同一個內存空間
而equals是判斷兩個變數或實例所指向的內存空間的值是不是相同
其次、==是指對內存地址進行比較
equals()是對字元串的內容進行比較
最後、==指引用是否相同
equals()指的是值是否相同
另外,值相同,地址不一定相同,而地址相同,值一定相同,即用equals比較的值為true,用==進行比較就不一定返回true,而用==比較為true,那麼用equals比較就一定為true。
順便提一句: == 是一個運算符。equals則是string對象的方法,可以.(點)出來。
『肆』 java中equals和==的區別
equals是Object類裡面的方法,String類重寫了該方法,對於基本數據類型,只能用==比較值是否相等;
對於引用數據類型而言,==是比較兩個引用變數是否指向同一對象,而equals方法在沒用重寫的情況下,和==一樣比較的是對象的內存地址,String類重寫了equals方法,比較的是字元串的內容是否相等
『伍』 java的equals和contains的區別
java的equals和contains的區別:
1、功能不同
equals指示其他某個對象是否與此對象「相等」。
contains當且僅當此字元串包含指定的 char 值序列時,返回 true。
2、用法不同
equals實現對象上差別可能性最大的相等關系;即,對於任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象時,此方法才返回 true(x == y 具有值 true)。
contains常用與集合中判斷某個對象是否含有這個元素。
3、含義不同
equals是比較兩個東西是否等同,適用於任何類別的對象。
contains是是否包含的意思,左邊的對象是一個容器了。
4、參數不同
equals參數為obj - 要與之比較的引用對象。
contains參數為s - 要搜索的序列。
『陸』 Java中==和equal有什麼區別
Java中==和equal的區別為:
1、== 表示 判斷2個變數或對象實例是否指向同一個內存空間,equals()表示 判斷2個變數或對象實例所指向的內存空間的值是否相同。
2、== 表示 對內存地址進行比較,equals()表示 對字元串的內容進行比較。
3、== 表示引用是否相同,equals() 表示值是否相同。
『柒』 java里 equals和== 區別
==是一個比較運算符,基本數據類型比較的是值,引用數據類型比較的是地址值。
(比較地址值即是指是否為同一個對象的引用)
equals()是一個方法,只能比較引用數據類型。重寫前比較的是地址值,重寫後比一般是比較對象的屬性。
(7)java中的equals與擴展閱讀:
java中的數據類型,可分為兩類:
1.基本數據類型,也稱原始數據類型。
byte,short,char,int,long,float,double,boolean,他們之間的比較,應用雙等號(==),比較的是他們的值。
2.復合數據類型。
當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較後的結果為true,否則比較後結果為false。
JAVA當中所有的類都是繼承於Object這個基類的,在Object中的基類中定義了一個equals的方法,這個方法的初始行為是比較對象的內存地址。
但在一些類庫當中這個方法被覆蓋掉了,如String,Integer,Date在這些類當中equals有其自身的實現,而不再是比較類在堆內存中的存放地址了。
對於復合數據類型之間進行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基於他們在內存中的存放位置的地址值的,因為Object的equals方法也是用雙等號(==)進行比較的,所以比較後的結果跟雙等號(==)的結果相同。
『捌』 java中的equals和==
第二個你採用的是equals方法比較,兩個類型為 IntValue 的對象,IntValue並沒有重寫equals方法調用的是Object對象的equals方法,Object對象的equals方法和==是一樣的,所以是false;
如果你這個類中重寫equals和hasCode方法後就會使true了,把IntValue改為
class IntValue{
int a;
public IntValue(int _a){
a=_a;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + a;
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
IntValue other = (IntValue) obj;
if (a != other.a)
return false;
return true;
}
}
『玖』 java中equals和==的區別
等號(==)
對比對象實例的內存地址來判斷是否是同一對象實例;也可以說是判斷對象實例是否物理相等。
equals()
當對象沒有重寫Object的equals方法時,equals方法判斷的是對象實例的ID,也就是內存地址,是否是同一對象實例;
該方法就是使用等號(==)的判斷結果。
Object類的源碼如下:
publicbooleanequals(Objectobj){
return(this==obj);
}
當對象所屬的類重寫equals方法時,要根據自身邏輯來判斷是否相等。
『拾』 java,equals是等於,那不等於怎麼表達
java中equals()返回boolean值,true表示相等,false表示不相等。不等於就是對上面的結果取反,!a.equals(b)。