1樓:企鵝酥
==,分兩種情況:①當比較基本資料型別變數時,比較兩個變數儲存的資料是否相等。(型別不一定要相等)
如:int a = 1;double b =1;System.out.print(a==b);
輸出是true。
②如比較引用資料型別變數,比較兩個物件的位址值是否相同。
如:String eg1 = new String(「hello」);
String eg2 = new String(「hello」);
System.out.print(eg1==eg2);
輸出是false。(因為new了兩個物件,物件位址不同)
equals是乙個方法,不是運算子(==是運算子)。分兩種情況:
①在Object類中定義的equals方法與「==」作用完全相同。
②在String,Date,File,包裝類等類下的equals方法比較的是兩個物件的「實體內容」是否相同。(因為上述類重寫了equals方法)
如:String eg3 = new String(「Luke」);
String eg4 = new String(「Luke」);
System.out.print(eg3.equals(eg4));
輸出是true。(因為實體內容都是Luke)
當然,你也可以去重寫equals方法來達成你想要的目的。
2樓:中公教育IT培訓
== 是乙個運算子。
Equals則是string物件的方法,可以.(點)出來。
「==」比較的是值【變數(棧)記憶體中存放的物件的(堆)記憶體位址】equal用於比較兩個物件的值是否相同【不是比位址】
3樓:
這個。。。。。
比如String s = new String("abc");
String a = "abc"
此時 a == b // falsea.equals(b) // true為毛咧?
因為==在比較物件的時候,是比較他們是不是引用的同乙個物件。
而equals比較物件的「值」是否相等。
當然,有些物件的equals函式木有過載,這個時候,也是1的解釋。所以。。。你要看看是哪個物件。
java中,字串比較的equals方法需要自己編嗎?
樂享生活522 字串比較的方法不需要自己實現,可使用apache提供的StringUtils類中的equals方法,需要引入commons lang3 3.5.jar 具體實現方式及相關注釋如下 lt p Compares two CharSequences,returning if they re...
Java中ArrayList最大容量為什麼是Integer MAX VALUE 8
徐斐然 為什麼減8已經有人回答了,但是事實上ArrayList的最大容量不是Integer.MAX VALUE 8,而是 Integer.MAX VALUE。原始碼如下 The maximum size of array to allocate.Some VMs reserve some heade...
java中的序列化和持久化之間的關係是什麼?
序列化是為了解決 資料傳輸的一致性 的問題。如 在機器A有乙個資料 假如是一串中文字串 如果要將這一串中文字串傳到機器B,那麼就涉及到傳輸的一致性問題,因為機器和機器之間的互動可以是二進位制格式,也可以是xml格式,也可以是JSON格式 以二進位制為例 所以就會經歷 資料在機器A轉成二進位制資料 機...