それぞれのメモリの-Javaエリア、スタックメモリとヒープメモリを、引用、該当シーンのどのような、なぜ?
- スタック:プログラムは、プログラム、またはどのようにデータを処理するための実装方法、すなわち、操作上の問題を解決します。
- ヒープ:ソリューションは置くために、データを配置する、すなわちどのように、データストレージの問題です。
参照リンクhttps://www.cnblogs.com/gdufs/p/6407432.html
ランタイムデータ領域
糸分離ランタイムデータ領域:プログラムカウンタ、Java仮想マシン・スタック、ネイティブメソッドスタック
- プログラム・カウンタ:ハンドオーバ後のプログラムカウンタによってスレッドが実行の正しい位置を復元できるように、現在、スレッドプライベートので、スレッドを実行し、行番号指示子バイトコード。
- Java仮想マシン・スタック:各メソッドは、実行時のスタックフレームを作成します。スタックフレーム上で実行からプロセスを完了するために、各メソッド呼び出しは、仮想マシンプロセススタックにスタックプッシュに対応します。
- ネイティブメソッドスタック?TODO
ランタイムデータ領域の共有スレッド:Javaヒープ、(実行時定数プールを含む)の方法エリア
- Javaヒープ:ストアオブジェクトインスタンス。メインエリアは、ガベージコレクタによって管理されています。
- メソッドの地区:仮想マシンを保存するには、クラス情報、定数、静的変数、コードやその他のデータをコンパイルする時間コンパイラがロードされています。?
- ランタイム定数プールは:メソッド領域の一部です。?TODO
OutOfMemoryError
仮想マシンのメモリのプログラムカウンタに加えて、他のいくつかの領域を実行するのOutOfMemoryError(OOM)例外が発生することがあります。