如果字符串池中包含两个字符串string1
和string2
引用字符串文字,那么System.out.println(string1 + string2)
会在字符串池中生成string3=string1+string2;
的其他字符串对象吗?如果没有,为什么?
想要更清楚地添加在这种情况下在池中分配了多少个对象?
答案 0 :(得分:2)
表达式
"string1" + "string2"
将导致字符串常量
"string1string2"
在编译时创建并添加到封闭类的常量池中。
表达式
string1 + string2
其中string1
和string2
是任意String
- 类型变量将编译为可执行代码,该代码连接两个字符串。结果未提交到池中。