从jdk 5开始,Java就对String字符串的+操作进行了优化,该操作编译成字节码文件后会被优化为StringBuilder的append操作。但是,我们不能一味地把String的+ 操作等同于append操作。

可以看这篇文章的对反编译字节码文件的分析:
jdk不同版本对String拼接的优化分析

这里只做总结:

字符串拼接从jdk5开始就已经完成了优化,并且没有进行新的优化。 循环内String+常量的话会每次new一个StringBuilder,再调用append方法。 循环外字符串拼接可以直接使用String的+操作,没有必要通过StringBuilder进行append. 有循环体的话,好的做法是在循环外声明StringBuilder对象,在循环内进行手动append。不论循环多少层都只有一个StringBuilder对象。

原文地址:https://blog.csdn.net/zhuyongzhen1219/article/details/79241477?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168904449916800185828444%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168904449916800185828444&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-29-79241477-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96