字符串的拼接方式一般有两种, 一种是使用 "+"运算, 直接拼接, 另一种是使用StringBuilder或StringBuffer的append方法拼接
在开发中, 有的不是很在意性能方面, 会习惯的使用 "+"运算, 但是如果对性能要求比较苛刻, 那么就应该使用StringBuilder,
因为, 即使使用 "+"运算进行字符串的拼接, 那么最终java还是会创建StringBuilder对象拼接字符串,
请看下面代码:
public class Test { public static void main(String[] args){ String str1 = "hello"; String str2 = "world"; System.out.println(str1 + str2); }}
JDK工具中, 有一个为javap的指令指令
下图的-c为参数, , 能够查看构成字节码的指令, Test是上图代码的字节码.class文件
重点看蓝色部分, 能够很清楚的看到代码中虽然没有使用StringBuilder, 但是实际执行中, 是通过StringBuidler拼接的
除此之外, 还有转化为String类型的方式
一般有三种,
1. +"";
2.String.valueOf();
3.toString();
第一种通过"+"运算拼接一个空字符串, 上述已经能看到, 会先创建一个StringBuilder对象, 通过append()方法拼接, 然后再调用toString()方法
第二种的String.valueOf(); 查看源码能够看多, 最终还是会调用toString()方法
第三种直接调用toString()方法, 直接调用当然会比间接调用快
如有错误, 敬请指正, 不胜感激!