Java中的String、StringBuilder和StringBuffer的区别?
1、String
String底层是private final char value[],final修饰了,所以不可变。
2、StringBuilder
StringBuilder和StringBuffer都继承了AbstractStringBuilder,而AbstractStringBuilder中存放数据的char[] value,所以是可变的。
3、StringBuffer
StringBuilder和StringBuffer都继承了AbstractStringBuilder,而AbstractStringBuilder中存放数据的char[] value,所以是可变的。
另外StringBuffer中的很多方法是加了synchronized关键字,所以是同步的。
应用场景分析
- String适合操作少量数据
- StringBuilder适合单线程操作字符串缓冲区下操作大量数据
- StringBuffer适合多线程操作字符串缓冲区下操作大量数据