首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的StringBuffer/StringBuilder大小

java中的StringBuffer/StringBuilder大小
EN

Stack Overflow用户
提问于 2011-08-16 11:31:37
回答 2查看 8.9K关注 0票数 4

全,

为什么建议将StringBuffer/StringBuilder对象的大小初始化为2^{1...n}(尽管它通常会大于64)。这样做会有什么好处/优化呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-16 13:21:30

这样做会带来什么好处/优化?

我不认为这样做有任何好处。

我的建议是选择一个比预期大一点的初始大小……如果你有一个比较好的估计。如果你没有一个估计值,你根本不会通过提供一个初始大小来获得太多。

使用一个明显高估的初始大小并不是一个好主意。这会浪费空间,并且JVM将不得不将您在某个时刻不使用的所有字符清零,这会占用CPU /内存周期。

应该可以根据经验计算出低估和高估大小的成本,并与使用默认初始大小的成本进行比较。然而,这些数字可能取决于JIT优化器有多好,以及复制内存的速度与将内存清零的速度。换句话说,它们将是特定于平台的。

票数 3
EN

Stack Overflow用户

发布于 2011-08-16 11:34:34

这个建议是因为,默认情况下,构造器将使用16的大小初始化它,并且每当超过这个容量时,它将双倍并创建一个新的。

因此,如果您确定将使用超过16个空格,则应使用更高的值对其进行初始化。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7073362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档