class test {
public static void main(String[] args) {
String a = "Hiabc";
String b = "abc";
String c = "abc";
System.out.println(a.substring(2,5)==b);
System.out.println(b==c);
}
}
output:
false
true
據我瞭解,Java的==尋找兩個比較對象的地址。然而,我不明白爲什麼b == c是真的,因爲它們必須有不同的地址。另外,如果b == c,那麼爲什麼是a.substring(2,5),這是「abc」== b false?在java中的子串和字符串之間的區別
因爲'substring'創建一個**新對象**。 'b'和'c'指池中的*相同*字符串。 – Maroun 2014-10-05 08:42:22
你能解釋更多關於「泳池」嗎?你的意思是Java有所有的字符串庫? – foothill 2014-10-05 08:55:13
谷歌它,有關於Java字符串池的無限資源。 – Maroun 2014-10-05 08:57:37