ホームページ  >  記事  >  Java  >  JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造

JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造

王林
王林転載
2019-08-24 14:38:133700ブラウズ

自動メモリ管理について話した後は、実行サブシステムについて話しましょう。実行サブシステムは、JVM がプログラムを実行する方法を説明します。

JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造

#クラス ファイルの概要

この記事では、クラス ファイルについてのみ説明します。クラス ファイルは、クラス ファイルまたはバイトコード ファイルとも呼ばれます。 javac は .java ファイル (ソース コード) を .class ファイル (バイトコード) にコンパイルし、jvm は .class ファイルをマシン コードに解釈します。

JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造

#クラス ファイルには、Java 仮想マシンの命令セットとシンボル テーブル、およびその他のいくつかの補助情報が含まれています。 8 バイトを基本単位とするギャップのないバイナリ ストリームの集合です。

JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造#データを保存するには、符号なし数値とテーブルという 2 つの構造があります。

(1) 符号なし数値は、数値、インデックス参照、定量値、または UTF-8 でエンコードされた文字列値を記述するために使用されます。基本データ型に属し、u1、u2、u4、u8 はそれぞれ 1 バイト、2 バイト、4 バイト、8 バイトを表します

(2) テーブルは複数のシンボリック数値または他のテーブルで構成されています「_info」で終わるデータ項目で構成される複合データ型として使用されます。

特徴は次のとおりです。クラス ファイル内で、どのバイトが何を表すか、長さはどれくらいか、順序は変更できません。

クラス ファイル コンポーネント

クラスのコンポーネントは、上の図に明確にリストされています。定数プールも強調する必要があります。仮想マシンの実行中は、対応するシンボル参照を定数プールから取得し、クラスの作成時または実行時に解析して特定のメモリ アドレスに変換する必要があります。

JAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造上記は、コンパイルされた JAVA 仮想マシンのクラス ファイルに関する部分です。その他の関連する質問については、PHP 中国語 Web サイトを参照してください:

JAVA ビデオ チュートリアル

以上がJAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。