String、StringBuilder、StringBuffer
String 真正不可变有下面几点原因:
- 保存字符串的数组被
final修饰且为私有的,并且String类没有提供/暴露修改这个字符串的方法。 String类被final修饰导致其不能被继承,进而避免了子类破坏String不可变。
String:不可变,线程安全
StringBuilder:可变,单线程,线程不安全
StringBuffer:可变,多线程,线程安全(方法加了同步锁)
String 真正不可变有下面几点原因:
final 修饰且为私有的,并且String 类没有提供/暴露修改这个字符串的方法。String 类被 final 修饰导致其不能被继承,进而避免了子类破坏 String 不可变。