Java “==”和“.equals()”的區別。

從Java數據類型的區別可以得出答案。



==:

Java 基礎數據類型:

名稱類型所佔空間大小(單位:byte)
float點浮型
double-8
byte 整型  1
short-2
int-4
long-8
char字符型2
boolean布爾型未規定空間大小,只能去字面值“ture”或“false”

以上數據類型,變量直接存儲的是“值”,使用“==”進行比較時,對比的是"值"本身。

如:

        int i=3;

        int j=3;

        “i==j”對比的是“3”這個值,所以結果爲true

對於Java非基礎數據類型,變量存儲的不是“值”而是關聯其對象的“地址”。

如:

        String s1 = new String("string");

        String s2 = new String("string");

        System.out.print(s1==s2);

        以上結果爲false,因爲s1和s2擁有不同的地址



.equals():

在Object類中,equals()是用來比較兩個對象的引用是否相等,即是否指向同一個對象。

### 

在String類中,equals()對比的是其儲存的字符串的值。

除了String以外,Double,Date,Integer等,都與String類似。



總結:

對於“==”,如果作用於基本數據類型的變量,則比較的是他們的值。

                如果作用於引用類型的變量,則比較的是他們的地址。

對於“equals()”,首先,它不可以作用於基本數據類型的變量

                如果沒有進行重寫,則默認對比他們的地址。

                否則對比他們的值。(如String等。)









查看原文:https://www.cnblogs.com/dolphin0520/p/3592500.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章