回答
我不知道你用术语的意思是“字符串地方内存“,但是在虚拟机中存在字符串文字池这样的东西,因此字符串文字汇集(并重用)。见Java语言规范部分3.10.5:
http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#1732
:
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100960
你提到上面详细介绍在VM规范的运行时数据区部分中的其他事情希望解释更多一点(使用正确的术语)。
我从来没有听说过,和谷歌搜索没有找到它的任何提及。你能告诉我们你听说过Java的“字符串本地内存”吗?我不相信这是一个标准的术语。
(我真的不知道你所说的“临时”或“注册表”无论至于JVM而言。意思)
这是Java架构师在面试中提出的问题。仍然在寻找这个奇怪的术语:) – 2010-05-25 06:22:58
乔恩是否有JVM中的任何其他内存,不包括此方法区域,堆栈,堆,温度和注册表? – 2010-05-25 06:28:49
@Srinivas:正如我所说,我甚至不确定“临时”和“注册表”。通过“方法区域”,我假设你指的是JITted代码。这听起来像是这位Java架构师感到困惑,可能与其他答案中提到的字符串文字池有关。 – 2010-05-25 06:34:37
从来没有听说过“字符串本地内存”。不过,我听说过“线程本地”内存。这就是访问给定ThreadLocal对象的每个线程获取不同的值,完全取决于它是哪个线程。如果你问我,我还没有必要使用它 - 感觉太神奇了。
查看http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ThreadLocal.html了解更多详情。
我之所以提到这一点是因为“字符串”和“线索”在“长,灵活,非常非常瘦的材料”中意味着非常相似的东西,并且来回翻译可能会导致混淆。
在JVM中的存储器被分成 方法区,栈,堆,温度和 注册表。
不,它不是。它被分成堆栈,堆,方法区和常量池。请参阅the JVM Specification
什么是字符串本地内存?
不知道。什么是'Temp'和'Registry'?
无论你从中得到这个是错误的。
- 1. 什么是Java中的字符串池?
- 2. 为什么字符串存储在Java中的字符串池?
- 3. 是什么堆内存和字符串常量池之间的Java
- 4. Java中的本地实现是什么?
- 5. Java内存在字符串[]中对多个字符串使用
- 6. 什么是Java字符串compareTo方法和什么是Java字典序
- 7. 字符串内部的Java字符串
- 8. CSS中的`〜`代字符串是什么?
- 9. C#中字符串前的@是什么?
- 10. 什么是Perl中的“字符串化”?
- 11. 什么是.NET中的字符串?
- 12. {}中的字符串是什么意思?
- 13. 什么是空字符串?
- 14. 什么是Uri字符串?
- 15. 缓存字符串中的在线文件内容而不是本地文件
- 16. 在C#中的区别是什么:字符串VS字符串
- 17. 什么是Java 8中的字符串键的替代散列?
- 18. 为什么java中的字符串是不可变的?
- 19. C#中的字符串性能 - 什么是更快地比较,字符串文字或字符串长度
- 20. 为本地字符串文字分配内存吗?
- 21. 空字符串(“”)如何在Java中的内存中存储?
- 22. 为什么id(字符串)不返回字符串的地址
- 23. Java字符串中的底层容器是什么?
- 24. 在java中存储未知数量字符串的最快方法是什么?
- 25. Java字符串内存泄漏
- 26. Java:静态字符串本地化
- 27. 在AppleScript中格式化本地化字符串的最佳方式是什么?
- 28. C字符串中'\ 0'后内存会发生什么变化?
- 29. 在Linux上,为什么字符串文字的内存地址与其他字符串的内存地址不同?
- 30. 静态字符串VS看似本地的字符串中的Java
感谢链接乔恩:) – 2010-05-25 06:38:34
+1有趣的链接! – oedo 2010-05-25 06:57:36