我读了Java StringBuilder使用大约1 MB大约500个字符的地方。这是真的吗?如果是这样,是不是有点极端? StringBuilder是否用这些内存来做一些令人难以置信的事情?这是什么原因,这是否意味着我不应该太多地使用这个类?Java StringBuilder巨大的开销
0
A
回答
13
不,这是完全垃圾 - 除非你创建一个具有庞大容量的StringBuilder,当然。
Java通常使用每个字符2个字节。在String和StringBuilder中,长度和数组本身都有一些开销,但不是很多。
现在1K的500个字符是正确的......我怀疑这是造成混乱的原因。 (或者你听错了,或者那个跟你说话的人重复了一次他们就会误认为)。
0
这个信息是错误的,你还记得这个信息的来源是什么吗?如果是的话,你应该纠正它。 Java通常每个字符使用2个字节。
0
由于重新分配2K 500个字符也是正确的,但不是更多。这是一个similar question。
2
我看到两种情况下的StringBuilder的倾向于使用的内存大量:
- 当StringBuilder的与一个疯狂的初始容量创建。
- StringBuilder的人被“缓存”到“保存”对象分配时间。
因此,在第二种情况下,如果某些使用SB的代码在其中存储了一个非常大的字符串,则StringBuilder可能会消耗1Mb的内存。这是因为它只会增长,但不会缩小它的内部字符数组。
这两种情况都可以(也应该)容易避免。
0
相关问题
- 1. 巨大的CPU开销的问题
- 2. 巨大功能的开销是多少?
- 3. Azure服务结构InvokeWithRetryAsync巨大的开销
- 4. JVM开销太大
- 5. java中的巨大矩阵
- 6. 在C中使用stringbuilder处理巨大的字符串#
- 7. 的StringBuffer/StringBuilder的大小在Java
- 8. 开销在Java
- 9. Java Swing巨大栅格
- 10. 行大小开销
- 11. 类中的javascript私有成员是否会导致巨大的内存开销?
- 12. 迭代一个巨大的列表导致超过gc开销限制
- 13. java监控:jconsole的开销?
- 14. Py4J的开销比Jython和JPype更大
- 15. java String和StringBuilder
- 16. Java巨大的数据存储
- 17. 处理巨大的数字C,Java,Informix
- 18. 流每秒巨大的数据用java
- 19. 传输使用Java的巨大数据
- 20. Java - 巨大的数据检索
- 21. 阅读巨大的文本文件Java
- 22. Maven编译巨大的Java文件
- 23. java读取巨大csv的行数
- 24. 解析Java中的巨大XML
- 25. 隐式StringBuilder大小
- 26. 打开并编辑巨大文件
- 27. StringBuilder的最大长度
- 28. StringBuilder的最大容量
- 29. 的java:转换为StringBuilder的
- 30. 巨大的CPU影响LinkedBlockingQueue
你是从哪里读的? – McDowell 2009-11-10 11:40:24
当然,在互联网上的某个地方。 – 2009-11-10 14:34:27