1. マジック ナンバー
すべての .class ファイルの最初の 4 バイトはマジック ナンバーであり、マジック ナンバーの固定値は 0xCAFEBABE です。マジック ナンバーはファイルの先頭に配置され、JVM はファイルの先頭に基づいて、そのファイルが .class ファイルである可能性が高いかどうかを判断できます。この場合、後続の操作は続行されます。
2. バージョン番号
バージョン番号はマジックナンバーの後の 4 バイトで、最初の 2 バイトは次のバージョン番号を示し、最後の 2 バイトは次のバージョン番号を示します。メジャーバージョン番号。
メジャー バージョン番号の後のバイトは、定数プールのエントリです。定数プールには、リテラルとシンボリック参照という 2 種類の定数が格納されます。リテラルはコード内で Final 定数値として宣言され、シンボルはカテゴリとインターフェイスのグローバル修飾名、フィールドの名前と指定子、メソッドの名前と指定子を参照します。定数プールは、定数プール カウンタと定数プール データ領域の 2 つの部分に分かれています。
3. 定数プール
定数プールの終わりの後の 2 バイトは、クラスがクラスであるかインターフェイスであるか、およびパブリック、抽象を使用するかどうかを記述します。 、ファイナルなどのデコレータ装飾。
4. アクセス フラグ
定数プールの末尾の 2 バイトは、クラスがクラスであるかインターフェイスであるか、およびパブリックによって変更されるかどうかを示します。 、アブストラクト、ファイナルなどタリスマンの修正。
5. 現在のクラス名
アクセス フラグの後の 2 バイトは、現在のクラスの完全修飾名を表します。この 2 バイトで保存された値が定数プールのインデックス値となり、このインデックス値に基づいて定数プール内でこのクラスの完全修飾名を見つけることができます。
6. 親クラス名
現在のクラス名の後の 2 バイトは、上記と同様に親クラスの完全修飾名を記述し、同様に保存されます。定数プールのインデックス値。
7. インターフェイス情報
親クラス名の後には、このクラスまたは親クラスによって実装されたインターフェイスの数を示す 2 バイトのインターフェイス カウンターが続きます。次の n バイトは、すべてのインターフェイス名の文字列定数のインデックス値です。
8. フィールド テーブル
フィールド テーブルは、クラス レベル変数やインスタンス変数など、クラスおよびインターフェイスで宣言された変数を記述するために使用されますが、メソッドは含まれません。内部宣言ローカル変数。
Java の基本データ型は次のように分類されます:
1. 整数型。整数のデータ型を表すために使用されます。
2. 浮動小数点型、小数を表すために使用されるデータ型。
3. 文字型. 文字型のキーワードは「char」です。
4. ブール型は、論理値を表す基本的なデータ型です。
以上がJavaのJVMのバイトコード構造は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。