如果我错了,请纠正我.在Java 8中,出于性能原因,当通过"+"运算符连接多个字符串时,调用了StringBuffer.并且"解决"了创建一堆中间字符串对象和污染字符串池的问题.
Java 9怎么样?Invokedynamic增加了一项新功能.还有一个新的类可以更好地解决问题,StringConcatFactory.
String result = "";
List<String> list = Arrays.asList("a", "b", "c");
for (String n : list) {
result+=n;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:在这个循环中创建了多少个对象?有中介对象吗?我该如何验证呢?