国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

equals和"=="的區(qū)別

2019-11-06 06:23:40
字體:
來源:轉載
供稿:網(wǎng)友

“==”操作符的應用場景:

(1) 基本數(shù)據(jù)類型的比較;(byte,short,char,int,long,float,double,boolean)(2) 判斷引用是否指向堆內(nèi)存的同一塊地址。(是對值的比較,引用數(shù)類型比較地址值,基本數(shù)據(jù)類型直接比較數(shù)值)

equals的應用場景:

- 如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址; - 如果對equals方法進行了重寫,則比較的是對象,即堆中的內(nèi)容。例如String、FIle、包裝類、Date等類型對equals方法進行了重寫的話,比較的是所指向的對象的內(nèi)容。用于判斷兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同,其返回值為布爾類型。(沒有重寫比較地址。重寫比較對象)

Object類源碼中的equals方法:

public boolean equals(Object obj) { return (this == obj); }

String類源碼中的equals方法:

public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }

Integer類源碼中的equals方法:

public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }

Boolean類源碼中的equals方法:

public boolean equals(Object obj) { if (obj instanceof Boolean) { return value == ((Boolean)obj).booleanValue(); } return false; }

測試String類:

public class TestString { public static void main(String[] args) { //對象不同,內(nèi)容相同,"=="返回false,equals返回true。 String s1 = new String("test"); String s2 = new String("test"); //值相同,則對象相同,"=="和equals返回值相同 String s3 ="test"; String s4 = "test"; System.out.PRintln(s1==s2); //false System.out.println(s1.equals(s2)); //true System.out.println(s3==s4); //true System.out.println(s3.equals(s4)); //true }}

比較后發(fā)現(xiàn),

Object的equals方法本質(zhì)也是用”==”進行比較的,所以比較后的結果跟”==”的結果相同。而在String、Integer、Boolean等的類中,equals方法都有其各自的實現(xiàn),都涉及到value的比較(即內(nèi)容的比較)。故在這些類中,equals方法是對內(nèi)容的比較。”==”比較的是他們在內(nèi)存中(棧)的存放地址。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦江县| 兴宁市| 留坝县| 谷城县| 南开区| 仙桃市| 囊谦县| 深水埗区| 承德市| 德令哈市| 田东县| 阿克| 定日县| 阿尔山市| 莲花县| 甘孜| 驻马店市| 会理县| 张北县| 蒙自县| 东乡县| 阜南县| 沾益县| 木兰县| 房山区| 浙江省| 北海市| 禹城市| 芜湖县| 陕西省| 荃湾区| 汶上县| 龙游县| 连州市| 大化| 溆浦县| 蒲江县| 高州市| 江华| 怀远县| 宜黄县|