Java String + 拼接是如何实现的

Java中String通过"+"进行字符串拼接,但是这个如何实现的呢

public class StringAppend {
    public static void main(String[] args) {
        String name = "World";
        System.out.println("Hello " + name);
    }
}

参照如上的一段代码进行Hello World打印,使用如下命令查看编译的结果

javap verbose StringAppend.class

根据编译结果右侧红框标出的结果来看,String + 的字符串拼接,会转而变成构造一个StringBuilder对象,然后通过append方法拼接余下的内容。

阿里巴巴开发手册中说明在for循环中不要使用String + 操作,而推荐使用StringBuilder,多线程则可以使用StringBuffer。
为什么呢,参照编译结果可以得出:在循环中使用String+操作,会进行大量的StringBuilder对象创建,会造成大量的内存分配回收工作,从而造成性能的损耗。

你可能感兴趣的:(Java String + 拼接是如何实现的)