一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

深入Java對(duì)象的比較

 醉三郎 2012-05-29
一、簡(jiǎn)單類型比較
 
Java中,比較簡(jiǎn)單類型變量用“==”,只要兩個(gè)簡(jiǎn)單類型值相等即返回ture,否則返回false;
 
二、引用類型比較
 
引用類型比較比較變態(tài),可以用“==”,也可以用“equals()”來(lái)比較,equals()方法來(lái)自于Object類,每個(gè)自定義的類都可以重寫這個(gè)方法。Object類中的equals()方法僅僅通過“==”來(lái)比較兩個(gè)對(duì)象是否相等。
 
在用“==”比較引用類型時(shí),僅當(dāng)兩個(gè)應(yīng)用變量的對(duì)象指向同一個(gè)對(duì)象時(shí),才返回ture。言外之意就是要求兩個(gè)變量所指內(nèi)存地址相等的時(shí)候,才能返回true,每個(gè)對(duì)象都有自己的一塊內(nèi)存,因此必須指向同一個(gè)對(duì)象才返回ture。
 
在用“equals()”比較引用類型時(shí),情況就比較復(fù)雜,甚至有些變態(tài),容易掉進(jìn)陷阱。
 
在Java API中,有些類重寫了equals()方法,它們的比較規(guī)則是:當(dāng)且僅當(dāng)該equals方法參數(shù)不是 null,兩個(gè)變量的類型、內(nèi)容都相同,則比較結(jié)果為true。這些類包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常見的就這些了,具體可以查看API中類的equals()方法,就知道了。
 
解析變態(tài)的Boolean類:在這些類中,最最變態(tài)的是要數(shù)Boolean類了,我感覺是開發(fā)Boolean類的人員頭腦進(jìn)水了。我也不想細(xì)說(shuō)了,你有好四種方式來(lái)創(chuàng)建一個(gè)Boolean對(duì)象(兩構(gòu)造方法,兩個(gè)靜態(tài)方法valueOf(),推薦用靜態(tài)方法)。
 
Boolean類的變態(tài)之處不在于其equals()方法。而是在于Boolean對(duì)象創(chuàng)建方法。其實(shí)Boolean類的對(duì)象最多有兩個(gè),其toString()值分別是true和false。當(dāng)且僅當(dāng)用true或者"true"創(chuàng)建的Boolean類為同一個(gè)對(duì)象且toString()值為true。其他的字符串或者false創(chuàng)建的Boolean對(duì)象的值一律相等且toString()值為false。
 
三、重寫equals()方法
 
在定義一個(gè)類的時(shí)候,如果涉及到對(duì)象的比較,應(yīng)該重寫equals()方法。重寫的一般規(guī)則是:
 
1、先用“==”判斷是否相等。
 
2、判斷equals()方法的參數(shù)是否為null,如果為null,則返回false;因?yàn)楫?dāng)前對(duì)象不可能為null,如果為null,則不能調(diào)用其equals()方法,否則拋java.lang.NullPointerException異常。
 
3、當(dāng)參數(shù)不為null,則如果兩個(gè)對(duì)象的運(yùn)行時(shí)類(通過getClass()獲取)不相等,返回false,否則繼續(xù)判斷。
 
4、判斷類的成員是否對(duì)應(yīng)相等。往下就隨意發(fā)揮了。呵呵!
 
 
四、總結(jié)
 
“==”比較對(duì)象是否引用了同一個(gè)對(duì)象,或者比較簡(jiǎn)單類型變量值是否相等。
Object類的equals()方法用來(lái)比較是否一個(gè)對(duì)象(內(nèi)存地址比較),可以重寫。
JDK中有些類重寫了equals()方法,只要類型、內(nèi)容都相同,就認(rèn)為相等。
很變態(tài)的Boolean類,僅存在兩個(gè)實(shí)例。具體可查看API。
一般來(lái)說(shuō),一個(gè)類如果涉及到比較,應(yīng)該重寫equals()方法,因?yàn)閮?nèi)存地址比較沒有意義。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日韩蜜桃一区二区三区| 欧美整片精品日韩综合| 亚洲最新av在线观看| 国产精品十八禁亚洲黄污免费观看| 国产又粗又猛又黄又爽视频免费| 国产三级黄片在线免费看| 国产精品伦一区二区三区四季| 日韩欧美一区二区久久婷婷| 激情中文字幕在线观看| 精品日韩欧美一区久久| 国产亚洲精品一二三区| 国产精品免费福利在线| 富婆又大又白又丰满又紧又硬| 激情内射日本一区二区三区| 精品国产av一区二区三区不卡蜜 | 日本精品啪啪一区二区三区| 国产麻豆成人精品区在线观看| 国产精品成人一区二区三区夜夜夜| 91亚洲人人在字幕国产| 九九热精彩视频在线免费| 人妻偷人精品一区二区三区不卡| 日本加勒比在线观看不卡| 日本欧美一区二区三区就| 亚洲午夜福利视频在线| 人妻中文一区二区三区| 国产内射一级一片内射高清| 日本一品道在线免费观看| 老熟妇2久久国内精品| 国产综合欧美日韩在线精品| 厕所偷拍一区二区三区视频| 久热人妻中文字幕一区二区| 在线免费不卡亚洲国产| 国产一区二区熟女精品免费| 久久精品国产在热久久| 中文字幕亚洲在线一区| 夫妻激情视频一区二区三区| 精品女同在线一区二区| 亚洲伦片免费偷拍一区| 日本大学生精油按摩在线观看| 精品熟女少妇av免费久久野外 | 日韩黄色一级片免费收看|