Java中 equals 和 == 的比較
阿新 • • 發佈:2018-05-03
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 和 == 的比較