java equals和=,==的差別具體引見。本站提示廣大學習愛好者:(java equals和=,==的差別具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是java equals和=,==的差別具體引見正文
Java中equals和==的差別
java中的數據類型,可分為兩類:
1.根本數據類型,也稱原始數據類型。byte,short,char,int,long,float,double,boolean
他們之間的比擬,運用雙等號(==),比擬的是他們的值。
2.復合數據類型(類)
當他們用(==)停止比擬的時刻,比擬的是他們在內存中的寄存地址,所以,除非是統一個new出來的對象,他們的比擬後的成果為true,不然比擬後成果為false。 JAVA傍邊一切的類都是繼續於Object這個基類的,在Object中的基類中界說了一個equals的辦法,這個辦法的初始行動是比擬對象的內存地 址,但在一些類庫傍邊這個辦法被籠罩失落了,如String,Integer,Date在這些類傍邊equals有其本身的完成,而不再是比擬類在堆內存中的寄存地址了。
關於復合數據類型之間停止equals比擬,在沒有覆寫equals辦法的情形下,他們之間的比擬照樣基於他們在內存中的寄存地位的地址值的,由於Object的equals辦法也是用雙等號(==)停止比擬的,所以比擬後的成果跟雙等號(==)的成果雷同。
java equals和=,==的差別
一. ==和equals的差別
1. ==是運算符
2. equals是String對象的辦法
普通有兩品種型的比擬
1. 根本數據類型的比擬
2. 援用對象的比擬
1. 根本數據類型的比擬
==和equals都比擬的是值能否相等,相等則為true,不然為false
2. 援用對象的比擬
==和equals都是比擬是棧內存中的地址能否相等,相等則為true,不然為false
留意:
1. String是一個特別的援用數據類型,==比擬的是字符串對象的援用地址能否一樣,equals比擬的是棧中的內容能否分歧。
String ss = new String("abc"); String sss = new String("abc"); if(ss == sss){ System.out.println("ss == sss is true"); } if(ss.equals(sss)){ System.out.println("ss equals sss is true"); }
掌握台輸入:
ss != sss
ss equals sss
注解:ss和sss在棧中的內存地址分歧,然則在堆中的內容是雷同的。
String ss = new String("abc");
String ssss = ss;
//斷定ss和ssss在棧中的援用地址能否一樣 if(ss == ssss){ System.out.println("ss == ssss"); }else{ System.out.println("ss != ssss"); } //斷定ss和ssss在堆中的內容能否一樣 if(ss.equals(ssss)){ System.out.println("ss equals ssss"); }else{ System.out.println("ss not equals ssss"); }
掌握台輸入:
ss == ssss
ss equals ssss
這注解ss和ssss是雷同的對象,而且他們在堆中的內容一樣
2. 援用對象的比擬
TestBean obj1 = new TestBean(); TestBean obj2 = new TestBean(); TestBean obj3 = obj1; if(obj1 == obj2){ System.out.println("obj1 == obj2"); }else{ System.out.println("obj1 != obj2"); } if(obj1 == obj3){ System.out.println("obj1 == obj3"); }else{ System.out.println("obj1 != obj3"); }
掌握台輸入:
obj1!= obj2
obj1== obj3
注解obj1和obj2不是統一個對象,在棧中的援用地址分歧
obj1和obj3是雷同的對象,在棧中的援用地址雷同
二. =和equals ==的差別
=表現的是賦值,行將=左邊的值賦給右邊的變量。equals和==是表現操作
感激浏覽,願望能贊助到年夜家,感謝年夜家對本站的支撐!