Java包装类中的equals方法
基本數(shù)據(jù)類(lèi)型包裝類(lèi)中的equals方法用于比對(duì)相同包裝類(lèi)中的值是否相等,如果兩者比較的包裝類(lèi)類(lèi)型不同則返回false;
1、基本型和基本型封裝型進(jìn)行“==”運(yùn)算符的比較,基本型封裝型將會(huì)自動(dòng)拆箱變?yōu)榛拘秃笤龠M(jìn)行比較,
2.兩個(gè)包裝類(lèi)型的對(duì)象進(jìn)行“==”比較時(shí),如果有一方的對(duì)象是new獲得的,返回false,因?yàn)橐玫刂凡煌?/p>
3、兩個(gè)基本型的包裝類(lèi)型進(jìn)行equals()比較,首先equals()會(huì)比較類(lèi)型,如果類(lèi)型相同,則繼續(xù)比較值,如果值也相同,返回true。
4、包裝類(lèi)型調(diào)用equals()方法,但是參數(shù)是基本類(lèi)型,這時(shí)候,先會(huì)進(jìn)行自動(dòng)裝箱,將基本型轉(zhuǎn)換為其包裝類(lèi)型,若類(lèi)型不同返回false,
若裝箱后類(lèi)型相同,則比較值,如果值相同,則返回true,否則返回false。
源碼如下:
Byte
public boolean equals(Object obj) {if (obj instanceof Byte) {return value == ((Byte)obj).byteValue();}return false;}Short
public boolean equals(Object obj) {if (obj instanceof Short) {return value == ((Short)obj).shortValue();}return false;}Integer
public boolean equals(Object obj) {if (obj instanceof Integer) {return value == ((Integer)obj).intValue();}return false;}Long
public boolean equals(Object obj) {if (obj instanceof Long) {return value == ((Long)obj).longValue();}return false;}Float
public boolean equals(Object obj) {return (obj instanceof Float)&& (floatToIntBits(((Float)obj).value) == floatToIntBits(value));}Double
public boolean equals(Object obj) {return (obj instanceof Double)&& (doubleToLongBits(((Double)obj).value) ==doubleToLongBits(value));}Charater
public boolean equals(Object obj) {if (obj instanceof Character) {return value == ((Character)obj).charValue();}return false;}Boolean
public static boolean parseBoolean(String s) {return ((s != null) && s.equalsIgnoreCase("true"));}總結(jié)
以上是生活随笔為你收集整理的Java包装类中的equals方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Python】快速认识Pandas的1
- 下一篇: java volatile 原子性_Ja