ps:这里的不需要,是说不需要去写
-
首先看两个方法
f1直接使用字符串拼接,f2 使用 StringBuilder 拼接
-
一般人分析
- f1 使用的是字符串直接拼接,会生成新的字符串对象,性能较低,不建议这样书写
- f2 使用 StringBuilder,字符串缓冲区,减少对象创建,拼接效率也高
事实上,这两个方法运行起来完全一样
-
java 代码会编译成 class 文件运行,而在编译时,java 编译器就会做很多基本的代码优化,直接上编译后的字节码
-
可以看到 f1 方法在编译后也使用了 StringBuilder 进行了字符串拼接
jdk8 测试字符串拼接使用了编译时优化,网络上信息说自 java1.7 开始就有了这种优化方式,读者可自行测试 这里写不写 StringBuilder 看似一样,实则根据实际情况,应选择简捷,使得代码格式清晰,可读性好的书写方式