在JVM中,内存分为方法区,堆栈,堆,临时和注册表。什么是字符串本地内存?这是否存在?如果是,何时分配或分配? 适当使用这个?
谢谢
答案 0 :(得分:5)
我不确定术语“字符串本地内存”是什么意思,但是在VM中存在字符串文字池这样的东西,其中字符串文字被合并(并重用)。请参阅Java语言规范中的3.10.5节:
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100960
上面提到的其他内容在VM规范的运行时数据区域中详细介绍:
http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#1732
希望能解释一下(使用正确的术语)。
答案 1 :(得分:3)
我之前从未听说过,谷歌搜索没有发现任何提及它。你能告诉我们你在哪里听说过Java的“字符串本地内存”吗?我不相信这是一个标准术语。
(就JVM而言,我真的不确定“temp”或“registry”是什么意思。)
答案 2 :(得分:3)
在JVM中,内存被拆分为 方法区域,堆栈,堆,温度和 注册表中。
不,不是。它分为堆栈,堆,方法区域和常量池。见the JVM Specification
什么是字符串本地内存?
不知道。什么是'Temp'和'Registry'?
无论你从哪里得到它都是错误的。
答案 3 :(得分:2)
从未听说过“字符串本地记忆”。不过,我听说过“线程本地”内存。这就是访问给定ThreadLocal对象的每个线程获取不同值的地方,完全取决于它所在的线程。我还没需要使用它 - 如果你问我,感觉太神奇了。
有关详细信息,请参阅http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ThreadLocal.html。
我之所以提到这一点是因为“字符串”和“线程”在“长而灵活,非常非常瘦的材料”的背景下意味着非常类似的东西,并且来回翻译可以解释混淆。