在 Java 8 中用于连接的“+”运算符被 new StringBuilder() 取代

shu*_*511 4 java string optimization stringbuilder

在 Java 8 中,我编写了一些示例代码。

String s1 = "Hello";  
String s2 = "world";  
String s3 = s1 + s2;  
Run Code Online (Sandbox Code Playgroud)

反编译 .class 文件后,我发现了第三条语句

 String s3 = s1 + s2;  
Run Code Online (Sandbox Code Playgroud)

取而代之

 String s3 = new StringBuilder(s1).append(s2).toString();
Run Code Online (Sandbox Code Playgroud)

这是否意味着不再需要使用显式 StringBuilder 进行优化而只需使用“+”运算符而不是?

Vla*_*sev 6

是的。实际上,这种优化在 Java 6 中已经完成。详见 Bruce Eckel 的“Thinking in Java”第 4 版 pp.356-359