编译时优化
1.编译时常量折叠
对于编译时已知的字符串常量,java编译器,会进行常量折叠 Constant Folding)。这意味着在编译阶段,编译器会直接计算出拼接结果,并将其作为一个单一的字符串常量存储在.class文件中。
例如:在编译时,这段代码会被优化为:
String str = "Hello" + " " + "World";
String str = "Hello World";
1.非常量表达式:
-
如果拼接的字符串包含变量或方法调用,编译器不能在编译时确定结果,因此需要在运行时进行拼接。在 JDK 1.8 中,编译器会将这些拼接操作转换为使用StringBuilder的代码。
-
例如:在编译时,这段代码会被转换为:
-
String str1 = "Hello"; String str2 = "World"; String result = str1 + " " + str2;
StringBuilder sb = new StringBu