在java中有字符串文字池的概念。如果我沒有在我的代碼中創建任何字符串,這個內存池對我來說是浪費。我怎樣才能使用這個內存區域,而不是保留字符串文字池。字符串文字內存利用率
1
A
回答
0
2
沒有「字符串文字池」;字符串文字是interned,但這意味着它們只是堆上的普通對象。他們可能會被引用很多,並以這種方式節省內存,但從根本上說,它們與其他任何對象沒有區別。
如果您的程序中沒有字符串文字(並且您沒有調用String.intern
),那麼JVM不會爲此分配堆內存。沒有涉及「隱藏」的內存區域,您不需要做任何事情來「訪問它」。
1
我不認爲這是有道理的。無論如何,從理論上講,字符串池是在Java堆的permgen區域。這與JVM存儲類的內存相同。默認情況下(至少對於Oracle HotSpot JVM)它是64 M.您可以嘗試使用兩個HotSpot JVM選項配置此區域:-XX:MaxPermSize和-XX:PermSize。對象越少,內存越少。
+0
+1注意:從Java 7開始,字符串位於堆(outisde perm gen)上。 – assylias 2013-02-15 11:27:10
相關問題
- 1. 字符串和高內存使用率
- 2. 高效的內存利用率?切換與字符串的情況下
- 3. 在字符串內存儲字符串?
- 4. GDI +內存利用率
- 5. 字符串[]內存使用
- 6. 充分利用字符串
- 7. 字符串格式利用率:設置負值=「-1」使用%n
- 8. 字符串和Permgen內存
- 9. 字符串內存分配
- 10. Java內存在字符串[]中對多個字符串使用
- 11. 字符串中的字符頻率
- 12. 如何將字符串文字存儲在內存中的c + +?
- 13. C#處理大字符串和內存效率
- 14. InfluxDB和Grafana內存利用率
- 15. Microsoft SQL Server內存利用率
- 16. 高交換內存利用率
- 17. EC2 CPU利用率vs內存
- 18. CouchDB與MongoDB(內存利用率)
- 19. C++字符串內存重用優化
- 20. 使用lldb查找字符串內存
- 21. 字符串在回報率
- 22. 蟒利用()上的字符串空間
- 23. 斯普利特用java字符串
- 24. 加入字符串和利用PHP
- 25. 商店字符串,利用活動
- 26. 斯威夫特3利用字符串
- 27. 充分利用字符串目標C
- 28. 利用字符串搜索JSON
- 29. 如何利用Python中的字符串
- 30. 字符串內存分配和字符串池概念
可能重複的[我們可以避免interning在java中的字符串?](http://stackoverflow.com/questions/5672688/can-av-a-oid-interning-of-strings-in-java) – assylias 2013-02-15 11:02:24