String、StringBuffer和StringBuilder的区别
1、String
- 定义(初始化)后就不可再修改其值(每次对String值的修改都是返回新的String);
-
线程安全
-
性能最差
2、StringBuffer -
可多次修改其值;
-
线程安全,原因是StringBuffer的方法都是用了synchronized(同步锁)修饰;
-
性能次之(多线程使用StringBuffer)
3、StringBuilder
- 可多次修改其值;
- 非线程安全
- 性能最好(但是只能是单线程使用StringBuilder)