String、StringBuffer 和 StringBuilder
2022-08-31 05:55:46
请告诉我一个实时的情况来比较, , 和 ?StringStringBufferStringBuilder
请告诉我一个实时的情况来比较, , 和 ?StringStringBufferStringBuilder
可变性差异:
String是不可变的,如果您尝试更改它们的值,则会创建另一个对象,而 并且是可变的,因此它们可以更改其值。StringBufferStringBuilder
螺纹安全区别:
和 之间的区别在于线程安全。因此,当应用程序只需要在单个线程中运行时,最好使用 。 比 更有效。StringBufferStringBuilderStringBufferStringBuilderStringBuilderStringBuffer
情况:
StringStringBuilderStringBufferStringBuffer字符串;从 中获取新的字符序列可能会在 CPU 时间或内存中带来不可接受的性能损失(获取子字符串是 CPU 效率的,因为不会复制数据,但这意味着可能仍然分配了大量数据)。StringStringBuilder。StringBuffer,但当必须同步对基础字符串的更改时(因为多个线程正在读取/修改字符串缓冲区)。StringBuilder请参阅此处的示例。