ホームページ  >  記事  >  Java  >  Java 仮想マシンの基本コンポーネントの紹介

Java 仮想マシンの基本コンポーネントの紹介

王林
王林転載
2020-11-04 16:11:092833ブラウズ

Java 仮想マシンの基本コンポーネントの紹介

Java 仮想マシンの基本構成:

(ビデオ チュートリアルの共有: java コース)

クラス ローディング サブシステム、ランタイム データ領域 (JVM メモリ モデル)、実行エンジン、ローカル メソッド インターフェイス

Java 仮想マシンの基本コンポーネントの紹介

クラス ローダー:

は主にコンパイルされた .class ワードを担当します。セクション コード ファイルは、ランタイム データ領域で使用するためにランタイム データ領域にロードされます。

実行時データ領域 (JVM メモリ モデル):

1. ヒープ: 主にオブジェクトを格納し、複数のスレッドによって共有されます (ガベージ コレクションのメイン領域)。

2. メソッド領域: 主に定数、静的変数、クラスのメタデータ (クラス名、メソッド、フィールド、バージョンなど) を格納します。

3. スレッド スタック: メソッド パラメーター、ローカル変数、中間操作結果、オブジェクト参照を保存し、他のモジュールが動作するために必要なデータなどを提供します。

4. ローカル メソッド スタック: ローカル メソッド スタックは、仮想マシンによって使用されるネイティブ メソッドを提供します。

5. プログラム カウンター: 現在のスレッドによって実行されるバイトコードの行番号インジケーターで、ローカル メソッドの実行時には null になります。

実行エンジン:

実行エンジンは、Java バイトコードの JVM 実行の中核となるもので、実行方法は主に解釈実行、コンパイル実行、適応最適化実行、ハードウェアチップ実行に分かれます。

ローカル メソッド インターフェイス:

非 Java 言語で実装されたメソッド インターフェイス。

jdk1.8 jvm メモリ構造図:

Java 仮想マシンの基本コンポーネントの紹介

JVM メモリ モデル 1.8 より前と 1.8 の違い:

Java 仮想マシンの基本コンポーネントの紹介

主な違い:

1. メタデータ領域は永続世代を置き換えます。メタスペースの本質は永続世代の本質と似ており、どちらも JVM 仕様のメソッド領域の実装です (追記: メソッド領域は Java 仮想マシンの仕様であり、永続世代とメタスペースは両方ともメソッド領域の実装)。

2. メタデータ領域は仮想マシンからローカル メモリに移動されます。

3. jdk1.8 の定数プールと静的変数は、ストレージのためにヒープに移動されました (論理的には、依然としてメソッド領域に属します)

関連する推奨事項: Getting Started Java を使用した場合 #

以上がJava 仮想マシンの基本コンポーネントの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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