1. 程式人生 > >Java中 equals 和 == 的比較

Java中 equals 和 == 的比較

ron 博客 自動裝箱 color bsp target net adf log

先來看這樣一個題目,假設有以下代碼 下列選項中返回false的語句是?

String s = "hello";
String t = “hello”;
char c [ ] = {h,e,l,l,o};
s.equals (t);    //A
t.equals (c);    //B
s==t;    //C
t.equals (new String ("hello"));    //D

在公布答案之前,我們先來這樣幾個知識點。

1、Java數據類型分為:

  • 基本數據類型
  • 引用數據類型

技術分享圖片

2、對於"=="

  • 用於基本數據類型相互比較. 比較二者的值是否相等。
  • 用於引用數據類型相互比較. 比較二者地址是否相等。
  • 不能用於基本數據類型與引用型比較。

3、對於"equals"

  • 不能用於基本數據類型比較(因為這是一個方法, 繼承自object)。
  • 用於進行對象的比較, 比較二者的引用地址是否相同。

4、特殊情況

  • 數值型基本類型和數值型類會存在自動裝箱自動拆箱
  • 字符串會以常量形式存在, 如果多個字符串變量值相同, 則他們指向同一個地址。
  • 數值類型會存在類型自動轉換。

到這裏,答案就很明了了,選擇 B。

作者:耑新新,發布於 博客園

轉載請註明出處,歡迎郵件交流:[email protected]

Java中 equals 和 == 的比較