1个。
编译器编译的时候就处理为"abcde"了 。
就创建了一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个
s只是引用不是对象
String s = null;
不生成任何对象
本文探讨了Java中字符串拼接的过程,特别是在编译阶段如何处理常量字符串的拼接,并解释了编译器如何将这样的操作优化为直接使用拼接后的字符串。
324

被折叠的 条评论
为什么被折叠?



