我已经了解了关于字符串连接性能的不同主题。几乎所有答案都建议使用StringBuilder
或StringBuffer
来降低开销成本(如果在循环外连接语句,则使用+
运算符(。这很清楚,但我仍然想知道为什么Java有Stringformat()
和concat()
方法,尽管它无效。此处的性能测试:链接。有人提到字符串format()
可能对Localization
有用(我不太懂,不管怎样,我以后已经有了一个关键字要搜索了(,但剩下的一个的目的是什么?它只对向后兼容性有用吗?
String#concat
和+
的存在是为了在类型String上提供一组最小的操作。
如果多次使用,它们是无效的。
但它们有自己的权限作为类型操作"xxx" + "yyy"
,您不希望使用StringBuilder指定。(此外,还有一个编译时串联。(
StringBuffer
是一个错误IMHO。它比更新的StringBuilder
更慢,因为它是同步的,但很少会从两个线程添加一些东西(无序(。
CCD_ 13可以是对流减少等有用的方法参考。