我知道String
和StringBuilder
之间的区别(StringBuilder
可以被修改),但是这两者之间有很大的性能差异吗?
我正在开发的程序具有许多基于情况的字符串追加(500+)。使用StringBuilder
是更好的选择吗?
我知道String
和StringBuilder
之间的区别(StringBuilder
可以被修改),但是这两者之间有很大的性能差异吗?
我正在开发的程序具有许多基于情况的字符串追加(500+)。使用StringBuilder
是更好的选择吗?
字符串拼接会消耗更多的资源。 在Java中,您可以根据需要使用StringBuffer或StringBuilder。 如果您需要同步和线程安全的实现,请选择StringBuffer。这比字符串拼接更快。
如果您不需要同步或线程安全的实现,请选择StringBuilder。 这比字符串拼接更快,也比StringBuffer更快,因为它们没有同步开销。
从内存角度来看,使用StringBuilder性能更佳。至于处理方面,执行时间的差异可能可以忽略不计。
StringBuilder可能更可取。原因是它分配比当前需要的空间更多(您设置字符数)以留出未来附加的空间。然后,适合当前缓冲区的那些未来附加不需要任何内存分配或垃圾收集,这可能很昂贵。通常,我用StringBuilder进行复杂字符串连接或多个格式化,然后在数据完成并且我再次想要一个不可变对象时将其转换为普通字符串。