java equals函數(shù)用法詳解
更新時(shí)間:2012年11月30日 10:42:14 投稿:whsnow
java 中equals函數(shù)的使用方法是廣大java愛好者所關(guān)心的一個(gè)話題,本文將詳細(xì)介紹其使用方法,需要了解的朋友可以參考下
equals函數(shù)在基類object中已經(jīng)定義,源碼如下
復(fù)制代碼 代碼如下:
public boolean equals(Object obj) {
return (this == obj);
}
從源碼中可以看出默認(rèn)的equals()方法與“==”是一致的,都是比較的對象的引用,而非對象值(這里與我們常識(shí)中equals()用于對象的比較是相餑的,原因是java中的大多數(shù)類都重寫了equals()方法,下面已String類舉例,String類equals()方法源碼如下:)
[java]
復(fù)制代碼 代碼如下:
/** The value is used for character storage. */
private final char value[];
/** The offset is the first index of the storage that is used. */
private final int offset;
/** The count is the number of characters in the String. */
private final int count;
[java] view plaincopyprint?
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
} //www.software8.co
return false;
}
String類的equals()非常簡單,只是將String類轉(zhuǎn)換為字符數(shù)組,逐位比較。
相關(guān)文章
SpringBoot開發(fā)技巧之如何處理跨域請求CORS
CORS(Cross-Origin Resource Sharing)"跨域資源共享",是一個(gè)W3C標(biāo)準(zhǔn),它允許瀏覽器向跨域服務(wù)器發(fā)送Ajax請求,打破了Ajax只能訪問本站內(nèi)的資源限制2021-10-10MyBatis攔截器:給參數(shù)對象屬性賦值的實(shí)例
下面小編就為大家?guī)硪黄狹yBatis攔截器:給參數(shù)對象屬性賦值的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04使用java編程從0到1實(shí)現(xiàn)一個(gè)簡單計(jì)算器
這篇文章主要介紹了使用java編程從0到1實(shí)現(xiàn)一個(gè)簡單計(jì)算器,文章中用代碼實(shí)例講解的很清晰,有感興趣的同學(xué)可以學(xué)習(xí)研究下2021-02-02手把手教你使用Java實(shí)現(xiàn)在線生成pdf文檔
在實(shí)際的業(yè)務(wù)開發(fā)的時(shí)候,常常會(huì)需要把相關(guān)的數(shù)據(jù)信息,通過一些技術(shù)手段生成對應(yīng)的PDF文件,然后返回給用戶。本文將手把手教大家如何利用Java實(shí)現(xiàn)在線生成pdf文檔,需要的可以參考一下2022-03-03springboot的緩存技術(shù)的實(shí)現(xiàn)
這篇文章主要介紹了springboot的緩存技術(shù)的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05