java中的 和equals有什麼區別?

時間 2021-10-21 05:57:49

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轉成二進位制資料 機...