字符串拼接
加号
编译的常量
String str = "a"+"b"+"c";
编译后:
String str = "abc";
- 对于编译的常量,在编译后直接计算出拼接后的字符串值
对象
String s1 = "a";
String s2 = "b";
String str = s1 + s2;
编译后:
String s1 = "a";
String s2 = "b";
String str = new StringBuilder(String.valueOf(s1)).append(s2).toString();
- 对spring对象进行+操作,实际上会创建一个临时的StringBuilder进行拼接操作
- 由于循环中每次执行都会创建一个对象,故不建议在循环中使用
concat
String str = "a"
.concat("b")
.concat("c");
String.join
String str = String.join(",","a","b","c");
- java8中新添加的方法
- 底层使用StringJoiner
StringBuilder(StringBuffer)
String s4 = new StringBuilder()
.append("a")
.append("b")
.append("c")
.toString();
- StringBuilder 线程不安全,但性能好
- StringBuffer线程安全,但性能不好