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(),一切都将是“真正的” - 字符串池中的字符串和外部字符串。 –