2010-05-25 49 views

回答

5

我不知道你用术语的意思是“字符串地方内存“,但是在虚拟机中存在字符串文字池这样的东西,因此字符串文字汇集(并重用)。见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规范的运行时数据区部分中的其他事情希望解释更多一点(使用正确的术语)。

+0

感谢链接乔恩:) – 2010-05-25 06:38:34

+0

+1有趣的链接! – oedo 2010-05-25 06:57:36

3

我从来没有听说过,和谷歌搜索没有找到它的任何提及。你能告诉我们你听说过Java的“字符串本地内存”吗?我不相信这是一个标准的术语。

(我真的不知道你所说的“临时”或“注册表”无论至于JVM而言。意思)

+0

这是Java架构师在面试中提出的问题。仍然在寻找这个奇怪的术语:) – 2010-05-25 06:22:58

+0

乔恩是否有JVM中的任何其他内存,不包括此方法区域,堆栈,堆,温度和注册表? – 2010-05-25 06:28:49

+0

@Srinivas:正如我所说,我甚至不确定“临时”和“注册表”。通过“方法区域”,我假设你指的是JITted代码。这听起来像是这位Java架构师感到困惑,可能与其他答案中提到的字符串文字池有关。 – 2010-05-25 06:34:37

2

从来没有听说过“字符串本地内存”。不过,我听说过“线程本地”内存。这就是访问给定ThreadLocal对象的每个线程获取不同的值,完全取决于它是哪个线程。如果你问我,我还没有必要使用它 - 感觉太神奇了。

查看http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ThreadLocal.html了解更多详情。

我之所以提到这一点是因为“字符串”和“线索”在“长,灵活,非常非常瘦的材料”中意味着非常相似的东西,并且来回翻译可能会导致混淆。

3

在JVM中的存储器被分成 方法区,栈,堆,温度和 注册表。

不,它不是。它被分成堆栈,堆,方法区和常量池。请参阅the JVM Specification

什么是字符串本地内存?

不知道。什么是'Temp'和'Registry'?

无论你从中得到这个是错误的。

相关问题