public static void main(String[] args) {
String[] arr = new String[5];
for (int i = 0; i < arr.length; i++) {
arr[i] = "aaa" + i;
}
System.out.println(arr[0] == "aaa0"); // false
String s = "aaa0";
System.out.println(s == arr[0]); // false
}
我有一個關於該主題的幾個問題可以幫助我瞭解字符串游泳池和的String []
什麼是事實,從字符串字符串數組不會自動去刺背後登錄池,不像字符串文字?
我是否正確理解只有字符串文字會隱式轉到字符串池?
我是否正確理解從公共靜態無效的主要該字符串數組(公共靜態無效的主要(字串[] args))沒有去字符串池中呢?
這不是因爲它在一個數組中。這是因爲你正在動態地創建這些'String'('arr [i] =「aaa」+ i')。 – resueman
@mstorkson雖然他正在談論字符串池,所以這是必要的,以顯示他的想法。 – Zircon
@mstorkson在我的情況下,通過==比較來顯示字符串池操作;通過equals(),一切都將是「真正的」 - 字符串池中的字符串和外部字符串。 –