ホームページ  >  記事  >  Java  >  Java仮想マシンとは何ですか? JVM の簡単な紹介

Java仮想マシンとは何ですか? JVM の簡単な紹介

青灯夜游
青灯夜游オリジナル
2018-11-21 16:52:4823178ブラウズ

この記事では、Java における JVM とは何ですか? JVM でできることと JVM の役割を誰もが理解できるようにするための Java 仮想マシンの簡単な紹介。困っている友人は参考にしていただければ幸いです。

Java仮想マシンとは何ですか? JVM の簡単な紹介

JVM とは何ですか?

Java 仮想マシン (JVM) は、Java プログラミング言語の中核である Java バイトコードを実行する仮想マシンです。プログラムを実行するとき、JVM はバイト コードをマシン固有のコードに変換する役割を果たします。 JVM はプラットフォームにも依存しており、メモリ管理、ガベージ コレクション、セキュリティなどのコア Java 機能を提供します。

JVM は、JVM が提供するインターフェイスが基盤となるオペレーティング システムやマシン ハードウェアに依存しないため、仮想と呼ばれます。ハードウェアやオペレーティング システムから独立しているため、Java プログラムをどこにでも一度作成することができます。

実際の世界では、JVM は Java バイトコードを実行できるランタイム環境を提供する仕様です。

JVM では何ができるのでしょうか?

JVM は次の操作を実行します:

1. コードの読み込み

2.

3. コードを実行します。

3. 実行環境を提供します。

JVM は次の定義を提供します:

1.メモリ領域

2. クラス ファイルの形式

##3. ガベージ コレクション ヒープ

5.

#JVM アーキテクチャ

JVM の内部アーキテクチャを見てみましょう。クラスローダー、メモリ領域、実行エンジンなどが含まれます。

1. クラス ローダー

クラスローダーは、クラス ファイルをロードするために使用される JVM のサブシステムです。 Java プログラムを実行するときは、まずクラス ローダーによってロードされます。 Java には 3 つの組み込みクラス ローダーがあります。 Java仮想マシンとは何ですか? JVM の簡単な紹介

1)、ブートストラップ クラスローダー: これは最初のクラス拡張であり、拡張クラス ローダーのスーパー クラスです。 rt.jar ファイルをロードします。このファイルには、java.lang パッケージ クラス、java.net パッケージ クラス、java.util パッケージ クラス、java.io パッケージ クラス、java.sql パッケージ クラスなど、Java Standard Edition のすべてのクラス ファイルが含まれています。 、など。

2)、拡張クラスローダー: これは、ブートストラップのサブクラス ローダーであり、システム クラス ローダーの親クラス ローダーです。 $JAVA_HOME/jre/lib/ext ディレクトリにある jar ファイルを通過します。

3)、システム/アプリケーション クラスローダー: これは、拡張クラス ローダーのサブクラス ローダーです。クラスパスからクラスファイルをロードします。デフォルトでは、クラスパスは現在のディレクトリに設定されます。 「-cp」または「-classpath」スイッチを使用してクラスパスを変更できます。アプリケーション クラス ローダーとも呼ばれます。

2. クラス (メソッド) 領域

メソッド領域には、実行時定数プール、フィールドおよびメソッドのデータ、メソッド コードなどの各種構造体が格納されます。

3. ヒープ

ヒープは、オブジェクトが割り当てられる実行時データ領域です。

4. スタッキング

Java はストレージ フレームをスタックします。スタックにはローカル変数と部分的な結果が含まれており、メソッドの呼び出しと戻りで役割を果たします。

各スレッドにはプライベート JVM スタックがあり、スレッドと同時に作成されます。

メソッドが呼び出されるたびに、新しいフレームが作成されます。メソッド呼び出しが完了すると、フレームは破棄されます。

5. プログラム カウンター レジスタ

PC (プログラム カウンター) レジスタには、現在実行されている Java 仮想マシン命令のアドレスが含まれます。

6. ネイティブ メソッド スタック

(ネイティブ メソッド スタック)アプリケーションで使用されるすべてのネイティブ メソッドが含まれます。

7. 実行エンジン

(実行エンジン)これには、

1)、仮想プロセッサ

2)、インタプリタが含まれます。 : バイトコード ストリームを読み取り、命令を実行します。 3)、ジャストインタイム (JIT) コンパイラー: パフォーマンスを向上させるために使用されます。 JIT は、同様の機能を持つバイト コードの一部を同時にコンパイルするため、コンパイルに必要な時間が短縮されます。ここで、「コンパイラ」という用語は、Java 仮想マシン (JVM) の命令セットから特定の CPU の命令セットへのコンバータを指します。

8. Java ネイティブ インターフェイス

(Java ネイティブ インターフェイス)

Java ネイティブ インターフェイス (JNI) は、他のアプリケーションと通信するためのインターフェイスを提供するフレームワークです。 C、C++、アセンブリなどの言語。Java は JNI フレームワークを使用して、出力をコンソールに送信したり、OS ライブラリと対話したりします。

要約:

以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。関連するビデオ チュートリアルの詳細については、JavaTutorial を参照してください。

以上がJava仮想マシンとは何ですか? JVM の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。