国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

如何區分JAVA中的equals與==

瀏覽:45日期:2022-08-31 16:47:16

java中的數據類型,可分為兩類:

1.基本數據類型,也稱原始數據類型。

byte,short,char,int,long,float,double,boolean 他們之間的比較,應用雙等號(==),比較的是他們的值。

基本數據類型比較 == 和 Equals 兩者都是比較值;equals()與==都是java中用于進行比較的,返回boolean值,不同的是equals()是Object類中定義的一個方法,==是一個比較運算符。下面是equals()在Object中的源碼:

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

我們驚奇的發現這方法和==不是一模一樣嗎??

下面再來看看String類中equals()方法的源碼:

public boolean equals(Object anObject){ //先進行地址值的判斷,如果想等直接返回true if (this == anObject) { return true; } //如果地址不相等,判斷傳進來的對象是不是String類型的一個實例 if (anObject instanceof String) { //發現是string類型的實例,將它強轉為string類型(強轉之后就可以調用string的方法了) String anotherString = (String) anObject; //value是string內部的一個char數組,每個string對象都對應一個char數組,得到長度 int n = value.length; //先進行長度的比較,如果相同才能進行下一步 if (n == anotherString.value.length) { //發現長度相同,將string對應的char數組中的字符一個一個進行比較 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; }

顯然String對equals()方法進行了重寫,使得它具有比較String內容是否相等的功能,此時的equals()就不在是僅僅比較對象地址了,

如果地址不相同,他會比較對象內容是否相同,如果相同會返回true。

2.復合數據類型(類)

當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較后的結果為true,否則比較后結果為false。

有如下代碼

public class TestString { public static void main(String[] args) { String s1 = 'Monday'; String s2 = 'Monday'; if (s1 == s2) { System.out.println('s1 == s2');} else{System.out.println('s1 != s2');} } }

編譯并運行程序,輸出:

s1 == s2

說明:s1 與 s2 引用同一個 String 對象 -- 'Monday'!

改動下程序

public class TestString {public static void main(String[] args) {String s1 = 'Monday';String s2 = new String('Monday');if (s1 == s2){System.out.println('s1 == s2');}else{System.out.println('s1 != s2');}if (s1.equals(s2)) {System.out.println('s1 equals s2');}else{System.out.println('s1 not equals s2');}}}

我們將s2用new操作符創建程序輸出:

s1 != s2s1 equals s2

說明:s1 s2分別引用了兩個'Monday'String對象

總結如下:

equals()和==都是用于比較運算。

equals()是Object類中的一個方法,用于比較對象是否相等,在Object類中,它的含義和==相同,比較的都是對象的地址,但有時我們要比較對象的內容,此時要重寫equals方法,例如String類就默認重寫了equals方法比較對象的內容。

==是一個比較運算符,當它兩邊是基本數據類型時,就是直接比較兩個數據的值,當兩邊是對象時,比較的是對象的地址。

以上就是如何區分JAVA中的equals與==的詳細內容,更多關于JAVA中的equals與==的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 视频在线亚洲 | 国产精品一区二区丝瓜 | 久久久亚洲精品蜜桃臀 | 国产免费高清 | 国产成人在线影院 | 中文字幕一区二区三区精品 | 久久99热精品免费观看欧美 | 国产精品黄网站 | 韩国美女高清爽快一级毛片 | 一区二区三区久久精品 | 一级成人a免费视频 | 日韩毛片在线免费观看 | 精品亚洲成a人在线观看 | 亚洲国产精品区 | 亚欧免费视频 | 欧美高清成人 | 国产精品黄网站免费进入 | 女人叉开腿让男人捅 | 久久久久无码国产精品一区 | 国产高清国产专区国产精品 | 特级aaa片毛片免费观看 | 成人α片 | 中国人免费观看高清在线观看二区 | 国产一区二区三区在线免费观看 | 美女舒服好紧太爽了视频 | 亚洲一区毛片 | 亚洲天堂国产精品 | 午夜美女网站 | 永久网站色视频在线观看免费 | 亚洲网址在线观看 | 99视频免费观看 | 成年女人免费视频播放成年m | 国产中文在线视频 | 亚洲国产欧美一区二区欧美 | 亚洲欧美日本韩国综合在线观看 | 欧美成在人线a免费 | 国产在线观看成人 | 精品久久一区二区三区 | 成人韩免费网站 | 国内精品一区二区在线观看 | 日本亚州视频在线八a |