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はスタックベースの命令セットアーキテクチャ、クロスプラットフォーム、小さな命令セット、多くの命令を採用しており、実行パフォーマンスはレジスタよりも悪い
スタックアーキテクチャに基づく機能:
- 設計と実装が簡単です。リソースが限られているシステムに適しています
- レジスタ割り当ての問題を回避し、ゼロアドレス命令メソッドを使用して割り当てる
- 命令ストリームのほとんどの命令はゼロアドレス命令であり、実行プロセスは演算スタックに依存し、命令セットは小さく、コンパイラーの実装は簡単です
- ハードウェアサポートの必要性、移植性の向上、クロスプラットフォームの向上
レジスタアーキテクチャに基づく機能
- 典型的なアプリケーションはx86バイナリー命令セットです;従来のPCやAndroid Davlik仮想マシンなど
- 命令セットアーキテクチャはハードウェアに完全に依存しており、移植性が低い
- 優れたパフォーマンスとより効率的な実行
- 操作を完了するための指示を少なくする
- ほとんどの場合、レジスタアーキテクチャに基づく命令セットは、多くの場合、1アドレス命令、2アドレス命令、および3アドレス命令によって支配されますが、スタックアーキテクチャに基づく命令セットは、ゼロアドレス命令によって支配されます。
仮想マシンの起動:
ブートストラップクラスローダーは、完了する初期クラスを作成します。
仮想マシン
の実行:実行中のJava仮想マシンには明確なタスクがあります。Javaプログラムを実行すると、プログラムは実行前に実行を開始し、プログラム技術は停止します。
Javaプログラムを実行するときに実際に実行されるのは、Java仮想マシンと呼ばれるプロセスです。