StringBuilder&StringBuffer
1 | |
String/StringBuffer/StringBuilder
- String是不可变的字符串对象,底层是final修饰的byte或者char数组(版本不同)
- StringBuilder是字符串生成器,是可变的字符串对象,底层是可变的,支持自动扩容。
- StringBuffer是字符串缓冲区,是可变的字符串对象,底层也可变,支持自动扩容
- StringBuffer是线程安全的,因为其方法被synchronized修饰
- StringBuilder虽然线程不安全,但是在单线程的时候,其效率比StringBuffer高
- StringBuilder和StringBuffer支持所有相同的操作
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从
JDK 5 开始,为该类补充了一个单个线程使用的等价类,即StringBuilder。与该类相比,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。— JDK1.6官方文档
StringBuilder&StringBuffer
https://blog.wangxk.cc/2020/08/20/StringBuilder-StringBuffer/