Java仮想マシンノート(A)

免責事項:この記事はブロガーオリジナル記事です、ソースを明記してください。Javaのノートシェア(xiaosen_javashare)https://blog.csdn.net/qq_36447151/article/details/87939835:国民の関心番号へようこそ

JDKおよびJREの違い

図1は、一般的なJavaプログラミング言語、Java仮想マシン、JavaのAPIライブラリをまとめてJDK(Javaの開発キット)と呼ばれる三つの部分には、JavaプログラムのためのJDKは、最小限の環境の整備を支援しています。

2、Java仮想マシンと二つの部分のJava SEのAPIのサブセットでJava APIクラス・ライブラリをまとめJRE(Javaランタイム環境)と呼ばれ、JREを実行するには、標準のJava環境をサポートしています。
コンテンツのJava技術システムに含ま

Java仮想マシンのメモリ領域

まず、プログラムカウンタ

スレッドは、行番号インジケータによって実行される現在のバイトコードとして見ることができます。プライベートメモリを通します。これは、Java仮想マシンのメモリ領域内のメモリリークの領域だけではありません。

二、Java仮想マシン・スタック

Java仮想マシンのスタックのJavaメモリ・モデルは、記載された方法を行う:ローカル変数テーブル情報、オペランドスタック、ダイナミックリンクスタック、方法輸出を格納するために行いながら、各メソッドがスタックフレームを作成します。Java仮想マシンのスレッドスタックは、プライベート、ライフサイクルと同じスレッドです。

ローカル変数のJava仮想マシンのスタックテーブル:基本データ型のすべての種類のストレージが知り得る、参照型(参照)とrunAddressタイプをコンパイルします。メソッドの動作中に、コンパイル時にメモリの割り当てを完了するために必要なローカル変数テーブルのメモリ空間は、ローカル変数テーブルのサイズを変更しません。

例外:

1)にStackOverflowError:スタックの深さは、深させ、仮想マシンスレッド要求よりも大きいです。

2)のOutOfMemoryError:拡大するときに適用しないように十分なメモリ。

第三に、ネイティブメソッドスタック

Java仮想マシン・スタックと同様に、プライベートスレッド、にStackOverflowErrorとOutOfMemoryErrorがスローされます。

Java仮想マシン・スタックの違いは、ネイティブメソッドがserviceメソッドを実行するJava仮想マシン用の仮想マシンサービス、Java仮想マシンのスタックを使用することで、ネイティブメソッドスタックということです。

四、Javaヒープ

ストレージオブジェクトのインスタンス、仮想マシンの起動時に作成され、すべてのスレッドで共有されています。また、JavaヒープGCヒープ、ガベージコレクタ管理として知られるメインエリア。

新世代と古い時代を次のようにJavaヒープを分解することができます。エデンスペースもサバイバースペースに、サバイバースペースから、分割することができます。

インスタンスがヒープメモリの割り当てに存在しない場合は終了し、もはや広げることができない、それはOutOfMemoryErrorが発生がスローされます

第五に、メソッド領域

クラス情報は、コードやその他のデータをコンパイルするには、仮想マシンがロードされている格納するのに使用される定数、静的変数、時間コンパイラれます。スレッドの共有エリアがあります。

そして、固定サイズのような連続Javaヒープメモリを必要とせず、選択することができ、拡張することができます。違いは、あなたがこの地域のために、メインメモリの回復の目標は、タイプの定数プールとアンロードの回復で、ガベージコレクションを実装しないことを選択することができるということです。

メモリ割り当て領域の方法は、需要を満たすことができない場合は、それがスローされますのOutOfMemoryError

第六に、実行時定数プール

この方法は、領域の一部であり、様々なリテラルコンパイル生成された基準シンボルを格納するため、この部分は、ゾーン時定数ストレージプールロードされたクラスのメソッドで実行するようになります。動的な性質は、実行時にもプールに新しい定数を格納することができます。また、あなたがメモリを割り当てることができない場合は、OutOfMemoryErrorがスローされます。

七、ダイレクトメモリ

仮想マシンの動作データ領域の一部ではありません。ネイティブNIOクラスライブラリは、割り当てられたヒープメモリの外部に直接使用することができ、その後、オブジェクトは、このメモリ参照動作としてJavaヒープDirectByteBufferに格納されている、Javaヒープを回避し、ネイティブデータを複製スタック。これは、例外がスローされますOutOfMemoryErrory


国民の関心番号へようこそ。
いいえマイクロチャネル公共ません

おすすめ

転載: blog.csdn.net/qq_36447151/article/details/87939835