クラスファイルの構造


1、言語関係なし
仮想マシンは、バイトコードClassファイルのソースがどの言語であるかにかかわらず、Classファイルの構造に合致すればJava仮想マシン上で実行できます.
2、Class類ファイルの構造
  • は、8ビットバイト単位のバイナリストリームのセットであり、各データ項目は、Classファイル中の
  • に厳密に順次コンパクトに配列する.
  • ファイルフォーマットは、符号なしとテーブル
  • の2つのデータ型のみを持つ擬似構造ストレージを採用している.
  • マジック数:ファイルの最初の4バイト、このファイルが仮想マシンに受け入れられるclassファイルであるかどうかを判断するための
  • 定数プールは主に2つの種類を格納する:字面量、記号参照
  • Java言語では多重継承は許可されていないため、親インデックスは1つしかありません.java.lang.Objectを除いて、すべてのJavaクラスには親
  • があります.
  • フィールドテーブルは、インタフェースまたはクラスで宣言された変数
  • を記述するために使用される.
  • Java言語ではフィールドはリロードできません.2つのフィールドのデータ型、修飾子は同じかどうかにかかわらず、異なる名前
  • を使用する必要があります.
  • メソッドテーブル
  • volatiletransientの2つのキーワードは方法
  • を修飾できない.
  • Slotは、仮想マシンがローカル変数にメモリを割り当てるために使用する最小単位
  • である.
  • 異常表
  • はJavaコードの一部であり、コンパイラは簡単なジャンプコマンドではなく異常テーブルを使用してJava異常およびfinally処理メカニズム
  • を実現する.