在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