java中==不是只能判断数值类型吗?为什么可以判断空字符串,输出为true?
黄舟
黄舟 2017-04-17 17:03:58
0
6
702
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(6)
洪涛

用雙引號創建的相同內容的字串,均指向同一個引用。而new String出來的是新的一個物件。這也是為什麼要盡量避免new String

public class StringEqualsTest{
    public static void main(String[] args) {
        String s1="Gavin";
        String s2=new String("Gavin");

        System.out.println("Gavin"==s1);
        System.out.println("Gavin"==s2);
    }
}


$java StringEqualsTest
true
false
$java StringEqualsTest

true🎜false🎜
黄舟

String不是基本資料型,所以使用==是比較的記憶體位址。

左手右手慢动作

網路上關於Java的==和equals()的介紹很多,隨便瀏覽幾篇你就可以明白這個問題,這個問題表面很簡單,但是越往後就會越深入。

Peter_Zhu

樓主 可以先去理解下 引用比較和值比較

阿神

java中==不是只能判斷數值類型嗎?
答:不是,==可以判斷基本資料型態(數值型別)、物件。

刘奇

==比較的是字面值
字串為引用類型,且已建立的字串在記憶體中不可變,s引用的是""字串的記憶體位址,相同的位址比較自然一樣

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板