第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于equals()方法有疑問?

老師說equals()方法是比較對象的引用是都指向同一塊內(nèi)存地址。

第一個(gè)代碼:s1和s2 不同,分別指向不同的對象內(nèi)存地址

public?class?Test?A{
public?static?void?main(String?args[])?{
????String?s1?=?new?String("Hello");
????String?s2?=?new?String("Hello");
???System.out.println("?s1==?s2?is?"?+?(s1?==?s2));
???System.out.println("?s1.equals(s2)?is?"?+?s1.equals(s2));
}
}

結(jié)果:

s1==?s2?is?false
s1.equals(s2)?is?true

第二個(gè)代碼:由于字符串常量池的原因,s1和s2相同

public?class?Test?A{
public?static?void?main(String?args[])?{
????String?s1?=“Hello”;
????String?s2?=?“Hello";
???System.out.println("?s1==?s2?is?"?+?(s1?==?s2));
???System.out.println("?s1.equals(s2)?is?"?+?s1.equals(s2));
}
}

結(jié)果:

?s1==?s2?is?true
?s1.equals(s2)?is?true

根據(jù)以上兩個(gè)代碼,比較值是否相等是equals(),比較兩個(gè)引用是否指向同一內(nèi)存地址是”==“。不過老師下面的代碼:

http://img1.sycdn.imooc.com//55293ffb0001598c04000295.jpg

卻顯示equals()比較的就是兩個(gè)引用指向的內(nèi)存地址是否相同。疑惑,難道是String和普通類創(chuàng)建對象有什么不同?

正在回答

1 回答

問題解決了!

  • JDK類中有一些類覆蓋了oject類的equals()方法(Object?中equals()方法是比較內(nèi)存地址的),比較規(guī)則為:如果兩個(gè)對象的類型一致,并且內(nèi)容一致,則返回true,這些類有:java.io.file,java.util.Date,java.lang.string,包裝類(Integer,Double等)。

  • 如果在Animal類覆蓋equals函數(shù),就會(huì)得到不同的效果。

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Java入門第二季 升級(jí)版
  • 參與學(xué)習(xí)       531098    人
  • 解答問題       6280    個(gè)

課程升級(jí)!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙

進(jìn)入課程

關(guān)于equals()方法有疑問?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)