課程
/后端開發
/Java
/Java入門第一季(IDEA工具)升級版
equals是干什么用的?一般用在哪個位置?在下看講解看的不太懂。
2016-08-05
源自:Java入門第一季(IDEA工具)升級版 4-4
正在回答
1. == 是一個運算符。 2.Equals則是string對象的方法,可以.(點)出來。 我們比較無非就是這兩種 1、基本數據類型比較 ?2、引用對象比較 1、基本數據類型比較 ==和Equals都比較兩個值是否相等。相等為true 否則為false; 2、引用對象比較 ==和Equals都是比較棧內存中的地址是否相等 。相等為true 否則為false; 需注意幾點: 1、string是一個特殊的引用類型。對于兩個字符串的比較,不管是 == 和 Equals 這兩者比較的都是字符串是否相同; 2、當你創建兩個string對象時,內存中的地址是不相同的,你可以賦相同的值。 所以字符串的內容相同。引用地址不一定相同,(相同內容的對象地址不一定相同),但反過來卻是肯定的; 3、基本數據類型比較(string 除外) == 和 Equals 兩者都是比較值
equals() 用于確定兩個對象的引用是否相同,而在String中equals()方法被進行了覆蓋,使其意義變為比較兩個對象的內容是否一致??梢愿鶕约旱男枰ブ貙慹quals() 和hashcode()方法去實現自己設定的比較標準。
equals() 用于確定兩個對象的引用是否相同,而在String中equals()方法被進行了覆蓋,使其意義變為比較兩個對象的內容是否一致。可以根據自己的需要去重寫equals() 和hashcode()方法去實現自己設定的比較標準。
equals方法對于字符串來說是比較內容的,而對于非字符串來說是比較其指向的對象是否相同的。
兩段代碼體會一下
第一段代碼-非字符串:
class A
{
?? A obj1?? =???new? A();
??? A obj2?? =? ?new? A();
}
那么:? obj1==obj2是false
??????????? obj1.equals(obj2)是false
但是如加上這樣一句:obj1=obj2;
那么? obj1==obj2? 是true
????????? obj1.equals(obj2) 是true
第二段代碼-字符串:
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
?那么:s1==s2? ?是 false????? //兩個變量的內存地址不一樣,也就是說它們指向的對象不?一樣,故不相等。
s1.equals(s2) 是 true????//兩個變量的所包含的內容是abc,故相等。
題主需要注意? equals 方法是 java.lang.Object 類的方法
看這種情況:
如果:??? StringBuffer s1 = new StringBuffer("a");????????????? StringBuffer s2 = new StringBuffer("a");????????????????????
結果:??? s1.equals(s2)? //是false
解釋:StringBuffer類中沒有重新定義equals這個方法,因此這個方法就來自Object類,而Object類中的equals方法是用來比較“地址”的,所以等于false.
如有誤,請指出,多多交流!
1、java中equals和==的區別 值類型是存儲在內存中的堆棧(簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。 2、==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內容是否相同。 3、equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。 4、==比較的是2個對象的地址,而equals比較的是2個對象的內容,顯然,當equals為true時,==不一定為true。
這要到后面對象才細說,現在大概了解下把。
舉報
0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始
1 回答關于equals的用法
3 回答equals等于==,過得了,會有問題嗎
1 回答String和.equals的關系
3 回答String類的“==”以及equals()問題
1 回答關于“”的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-05
1. == 是一個運算符。
2.Equals則是string對象的方法,可以.(點)出來。
我們比較無非就是這兩種 1、基本數據類型比較 ?2、引用對象比較
1、基本數據類型比較
==和Equals都比較兩個值是否相等。相等為true 否則為false;
2、引用對象比較
==和Equals都是比較棧內存中的地址是否相等 。相等為true 否則為false;
需注意幾點:
1、string是一個特殊的引用類型。對于兩個字符串的比較,不管是 == 和 Equals 這兩者比較的都是字符串是否相同;
2、當你創建兩個string對象時,內存中的地址是不相同的,你可以賦相同的值。
所以字符串的內容相同。引用地址不一定相同,(相同內容的對象地址不一定相同),但反過來卻是肯定的;
3、基本數據類型比較(string 除外) == 和 Equals 兩者都是比較值
2016-08-05
equals() 用于確定兩個對象的引用是否相同,而在String中equals()方法被進行了覆蓋,使其意義變為比較兩個對象的內容是否一致??梢愿鶕约旱男枰ブ貙慹quals() 和hashcode()方法去實現自己設定的比較標準。
2016-08-05
equals() 用于確定兩個對象的引用是否相同,而在String中equals()方法被進行了覆蓋,使其意義變為比較兩個對象的內容是否一致。可以根據自己的需要去重寫equals() 和hashcode()方法去實現自己設定的比較標準。
2016-08-05
equals方法對于字符串來說是比較內容的,而對于非字符串來說是比較其指向的對象是否相同的。
兩段代碼體會一下
第一段代碼-非字符串:
class A
{
?? A obj1?? =???new? A();
??? A obj2?? =? ?new? A();
}
那么:? obj1==obj2是false
??????????? obj1.equals(obj2)是false
但是如加上這樣一句:obj1=obj2;
那么? obj1==obj2? 是true
????????? obj1.equals(obj2) 是true
第二段代碼-字符串:
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
?那么:s1==s2? ?是 false????? //兩個變量的內存地址不一樣,也就是說它們指向的對象不?一樣,故不相等。
s1.equals(s2) 是 true????//兩個變量的所包含的內容是abc,故相等。
題主需要注意? equals 方法是 java.lang.Object 類的方法
看這種情況:
如果:??? StringBuffer s1 = new StringBuffer("a");
????????????? StringBuffer s2 = new StringBuffer("a");????????????????????
結果:??? s1.equals(s2)? //是false
解釋:StringBuffer類中沒有重新定義equals這個方法,因此這個方法就來自Object類,而Object類中的equals方法是用來比較“地址”的,所以等于false.
如有誤,請指出,多多交流!
2016-08-05
1、java中equals和==的區別 值類型是存儲在內存中的堆棧(簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。
2、==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內容是否相同。
3、equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。
4、==比較的是2個對象的地址,而equals比較的是2個對象的內容,顯然,當equals為true時,==不一定為true。
2016-08-05
這要到后面對象才細說,現在大概了解下把。