hqt*_*hqt 2 java string stringbuffer immutability
我在Java书中读过:
因为a
String是不可变的,使用StringBuffer效率更高.
我知道String实例是不可变的.
我也明白,StringBuffer使处理字符串比正常情况更有效.
但是我无法解决的问题是连接这两个概念的原因,即String不可变的帮助是StringBuffer什么?
谢谢 :)
因为字符串是不可变的,要操纵字符串,比如连接字符串,就必须创建新的String对象,因为很明显,你不能改变现有String对象的状态.而使用StringBuffer或StringBuilder,您可以创建一个对象,只需更改其状态即可.例如,如果你在for循环中进行一些主要的字符串连接,那么这个对象的创建会变得非常昂贵.
话虽这么说,我看到许多帖子批评了不涉及大规模串联的简单字符串连接,并且在那种情况下使用StringBuffer或StringBuilder是过早和不必要的优化的一个例子.
另请注意,除非您的应用程序需要在多个线程中访问该对象,并且不介意这会产生额外的开销,否则您应该优先使用StringBuilder而不是StringBuffer.
| 归档时间: |
|
| 查看次数: |
3010 次 |
| 最近记录: |