我讀了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