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