String、StringBuffer、StringBuilder的区别:
1.比较
口径 | String | StringBuffer | StringBuilder |
---|---|---|---|
执行速度 | 最差 | 其次 | 最高 |
线程安全 | 安全 | 安全 | 不安全 |
使用场景 | 少量字符串操作 | 并发+大量 | 单线程+大量操作 |
2.源码
2.1 String
final
字符串是常量;它们的值创建后不能更改。字符串缓冲区支持可变字符串。因为String对象是不可变的,所以它们可以被共享.
Java语言为字符串连接操作符(+)以及将其他对象转换为字符串提供了特殊支持。字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的。
java8中如下代码是用的StringBuilder:
public class Test {
public static void main(String[] args){
String a = "a";
String b = "b";
String c = a+b;
System.out.println(c);
}
}
javap -v Test.class
2.2 StringBuffer
synchronized
2.3 StringBuilder
无同步
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。