我目前正在深入研究Java虛擬機的規範。我一直在閱讀Inside the JVM book online,有一個令人困惑的抽象,我似乎無法理解:常量池。這裏是該書的摘錄:Java常量池的用途是什麼?
對於加載的每種類型,Java虛擬機必須存儲常量池。常量池是類型使用的一組有序常量,包括文字(字符串,整數和浮點常量)以及對類型,字段和方法的符號引用。常量池中的條目由索引引用,非常類似於數組的元素。因爲它擁有對類型使用的所有類型,字段和方法的符號引用,所以常量池在Java程序的動態鏈接中起着核心作用
我對於上述和CP有一些疑問:
- CP是否位於
.class
文件中的每種類型? - 作者用「符號參考」表示什麼?
- Constant Pool的目的是什麼?用簡單的英語?
「當一個Java類被編譯...」?不是.class文件已經是已編譯的Java代碼嗎? – 2015-05-02 21:25:07
是的,.java文件在編譯時變成.class文件。 – 2015-05-03 03:16:56
鏈接被破壞 – 2016-02-23 01:30:14