2
在Java中,Java字符串常量池中
String s1 = new String("abc");
String s2 = new String("ab") + new String("cd");
威爾字符串 「ABC」 和 「ABCD」 的字符串常量池的創建?
在Java中,Java字符串常量池中
String s1 = new String("abc");
String s2 = new String("ab") + new String("cd");
威爾字符串 「ABC」 和 「ABCD」 的字符串常量池的創建?
s1
和s2
都不會指向常量池中的字符串,因爲您是通過顯式構造函數調用和串聯的組合創建它們的。只有字符串文字「abc」,「ab」和「cd」將在常量池中。
您需要明確intern()
新實例。在這種情況下,s1 == "abc"
將成爲現實。
s2.intern(); String s3 =「abcd」;爲什麼s2 == s3在jdk1.7中是真的? – Bobby
從s2開始,任何JDK都應該如此,s3應該在常量池中看到相同的實例。 –
非常感謝,我終於明白了。 – Bobby