自動メモリ管理について話した後は、実行サブシステムについて話しましょう。実行サブシステムは、JVM がプログラムを実行する方法を説明します。
#クラス ファイルの概要
この記事では、クラス ファイルについてのみ説明します。クラス ファイルは、クラス ファイルまたはバイトコード ファイルとも呼ばれます。 javac は .java ファイル (ソース コード) を .class ファイル (バイトコード) にコンパイルし、jvm は .class ファイルをマシン コードに解釈します。 #クラス ファイルには、Java 仮想マシンの命令セットとシンボル テーブル、およびその他のいくつかの補助情報が含まれています。 8 バイトを基本単位とするギャップのないバイナリ ストリームの集合です。#データを保存するには、符号なし数値とテーブルという 2 つの構造があります。
(1) 符号なし数値は、数値、インデックス参照、定量値、または UTF-8 でエンコードされた文字列値を記述するために使用されます。基本データ型に属し、u1、u2、u4、u8 はそれぞれ 1 バイト、2 バイト、4 バイト、8 バイトを表します
(2) テーブルは複数のシンボリック数値または他のテーブルで構成されています「_info」で終わるデータ項目で構成される複合データ型として使用されます。
特徴は次のとおりです。クラス ファイル内で、どのバイトが何を表すか、長さはどれくらいか、順序は変更できません。
クラス ファイル コンポーネントクラスのコンポーネントは、上の図に明確にリストされています。定数プールも強調する必要があります。仮想マシンの実行中は、対応するシンボル参照を定数プールから取得し、クラスの作成時または実行時に解析して特定のメモリ アドレスに変換する必要があります。
上記は、コンパイルされた JAVA 仮想マシンのクラス ファイルに関する部分です。その他の関連する質問については、PHP 中国語 Web サイトを参照してください:
JAVA ビデオ チュートリアル以上がJAVA仮想マシン(JVM)の詳しい紹介(4) - クラスファイルの構造の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。