Java仮想マシンJVMの初見

Java開発の主なイベント

2000年にJDK1.3がリリースされ、JavaのHotSpot仮想マシンがリリースされました。これは正式にJavaのデフォルト仮想マシンになりました。
2011年にJDK7がリリースされ、新しいガベージコレクターG1が正式に起動されました。
2017。JDK9がリリースされました。G1ではなく、GMSがデフォルトのGCとして設定されます。

システム仮想マシン:
Visual Box、Vmware。
仮想マシン
Java仮想マシンは、物理コンピューター用のエミュレーションプログラムであり、単一のコンピュータープログラムを実行するように特別に設計されています。

Java仮想マシンは
、バイトコードにインストールされ、対応するプラットフォームでのマシン命令の実行に解釈/コンパイルされるバイナリバイトコードの動作環境です。
機能:
1回のコンパイル、どこでも実行、
自動メモリ管理、
自動ガベージコレクション

Java仮想マシンの動作環境

JVMはオペレーティングシステム上で実行され、ハードウェアと直接対話しません。
ここに画像の説明を挿入

HotSpot仮想マシン

Java仮想マシンで採用されているHotSpot仮想マシンは、インタープリターとジャストインタイムコンパイラーが共存するアーキテクチャーを採用しています。
ここに画像の説明を挿入

建築モデル

JVMはスタックベースの命令セットアーキテクチャ、クロスプラットフォーム、小さな命令セット、多くの命令を採用しており、実行パフォーマンスはレジスタよりも悪い

スタックアーキテクチャに基づく機能:

  1. 設計と実装が簡単です。リソースが限られているシステムに適しています
  2. レジスタ割り当ての問題を回避し、ゼロアドレス命令メソッドを使用して割り当てる
  3. 命令ストリームのほとんどの命令はゼロアドレス命令であり、実行プロセスは演算スタックに依存し、命令セットは小さく、コンパイラーの実装は簡単です
  4. ハードウェアサポートの必要性、移植性の向上、クロスプラットフォームの向上

レジスタアーキテクチャに基づく機能

  1. 典型的なアプリケーションはx86バイナリー命令セットです;従来のPCやAndroid Davlik仮想マシンなど
  2. 命令セットアーキテクチャはハードウェアに完全に依存しており、移植性が低い
  3. 優れたパフォーマンスとより効率的な実行
  4. 操作を完了するための指示を少なくする
  5. ほとんどの場合、レジスタアーキテクチャに基づく命令セットは、多くの場合、1アドレス命令、2アドレス命令、および3アドレス命令によって支配されますが、スタックアーキテクチャに基づく命令セットは、ゼロアドレス命令によって支配されます。

仮想マシンの起動:
ブートストラップクラスローダーは、完了する初期クラスを作成します。
仮想マシン
の実行実行中のJava仮想マシンには明確なタスクがあります。Javaプログラムを実行すると、プログラムは実行前に実行を開始し、プログラム技術は停止します。
Javaプログラムを実行するときに実際に実行されるのは、Java仮想マシンと呼ばれるプロセスです。

おすすめ

転載: blog.csdn.net/qq_43458555/article/details/108350241
おすすめ