回答
我不知道你用術語的意思是「字符串地方內存「,但是在虛擬機中存在字符串文字池這樣的東西,因此字符串文字彙集(並重用)。見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