Java実行時の定数プールは何を保存していますか?

Javaのランタイム定数プールには、以下の内容が格納されています。

  1. Javaの文字列定数(例:「Hello, World!」)は、プログラムで繰り返し使用するために定数プールに保存されます。
  2. Javaプログラムでのクラスとインターフェースの完全修飾名は、それぞれのクラスやインターフェースが定数プールに保存されます。
  3. ランタイム定数:基本データ型の定数(例:int、float、double、booleanなど)およびそれらに対応するラッパークラスの定数(例:Integer、Float、Double、Booleanなど)を含む。
  4. シンボル参照:クラス、インターフェース、フィールド、およびメソッドのシンボル参照(例:クラスの完全限定名、フィールド名、メソッド名など)は、定数プールに格納され、実行時に対応する実体を解決するために使用されます。
  5. いくつかの一般的なリテラル(例:整数、浮動小数点数、文字、ブール値など)は、プログラム内で繰り返し使用するために定数プールに保存されます。

Javaの実行時定数プールはコンパイル時に定まりますが、これはJava仮想マシン仕様で定義されるクラスファイルの定数プールとは異なります。クラスの読み込み時には、クラスファイル内の定数プールが実行時定数プールに読み込まれ、いくつかの処理や最適化が行われます。

bannerAds