私は現在、Java 仮想マシンの仕様をより深く掘り下げようとしています。私はInside the JVM book をオンラインで読んでいますが、理解できない紛らわしい抽象概念が 1 つあります。それは、Constant Pool です。ここに本からの抜粋があります:
ロードする型ごとに、Java 仮想マシンは定数プールを格納する必要があります。定数プールは、リテラル (文字列、整数、および浮動小数点定数) と、型、フィールド、およびメソッドへのシンボリック参照を含む、型によって使用される定数の順序付けられたセットです。定数プールのエントリは、配列の要素と同じように、インデックスによって参照されます。型によって使用されるすべての型、フィールド、およびメソッドへのシンボリック参照を保持するため、定数プールは Java プログラムの動的リンクにおいて中心的な役割を果たします。
上記および CP 全般についていくつか質問があります。
- CP
.class
は各タイプのファイルに配置されていますか? - 著者は「シンボリック参照」とはどういう意味ですか?
- コンスタントプールの目的は何ですか?簡単な英語で?