在講 == 和 equals 的區(qū)別前我們需要確認一下 Java 中的數(shù)據(jù)類型。在Java中有基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩種。
1、8種基本數(shù)據(jù)類型:
四種整數(shù)類型(byte、short、int、long)
兩種浮點數(shù)類型(float、double)
一種字符類型(char)
一種布爾類型(boolean)
2、引用數(shù)據(jù)類型:
除了上面我們說的 8 種基本數(shù)據(jù)類型外,其他在Java中出現(xiàn)的類型都是引用數(shù)據(jù)類型。如我們自己寫了一個Dog類,而在上面說的8種基本數(shù)據(jù)類型中不包括Dog類型,所以Dog類型是隸屬于
引用數(shù)據(jù)類型的。
==的理解:
要理解 == 我們學(xué)要從兩個方面來理解:
(1) == 兩邊為 8 中基本數(shù)據(jù)類型時:
當 == 兩邊為8中基本數(shù)據(jù)類型時, == 判斷的是兩邊變量中存放的內(nèi)容是否相等。例:











上面的例子的運行結(jié)果是在控制臺中輸出"變量a和變量b中的值相等" 我們可以看出當 == 兩邊為8種基本數(shù)據(jù)類型時比較的時內(nèi)容換句話說就是比較變量的值。
(2) == 兩邊為引用數(shù)據(jù)類型時:
當 == 兩邊為引用數(shù)據(jù)類型事,== 判斷的是引用數(shù)據(jù)類型的對象的內(nèi)存地址是否一樣,如果 == 比較的內(nèi)存地址一樣表示 == 兩邊是同一個對象,否則 == 兩邊不是同一個對象。例:















equals的理解:
equals的理解就容易多了,equals他是一個方法,而方法只有對象才能擁有,所以equals的左邊一定是一個對象他的語法格式因該是:
對象名.equals(比較的內(nèi)容)
例:
















