最初にコードを見てみましょう:
(推奨チュートリアル: Java 入門チュートリアル)
package cn.liang.jvm; public class SimpleHeap { private int id; public SimpleHeap(int id){ this.id = id; } public void show(){ System.out.println("My ID is " + id); } public static void main(String[] args) { SimpleHeap s1 = new SimpleHeap(1); SimpleHeap s2 = new SimpleHeap(2); s1.show(); s2.show(); } }
関係図:
(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)
SimpleHeap インスタンス自体は、ヒープ メモリ
SimpleHeap クラスを説明する情報はメソッド領域に格納されます。
main() 内の s1 および s2 ローカル変数関数は Java スタック メモリに保存され、ヒープを指します。メモリの 2 つのインスタンス
ヒープ領域:
1。保存されているすべてのオブジェクトはオブジェクトであり、各オブジェクトには次のものが含まれます。対応するクラスに関する情報。 (クラスの目的は操作命令を取得することです)
2. JVM にはすべてのスレッドで共有されるヒープ領域 (ヒープ) が 1 つだけあり、ヒープには基本型やオブジェクト参照は格納されず、オブジェクト自体のみが格納されます。保管されています。
スタック領域:
1. 各スレッドにはスタック領域が含まれます。基本データ型のオブジェクトとカスタム オブジェクトへの参照 (オブジェクトではない) のみがスタックに格納されます。オブジェクトはヒープ ゾーン
2. 各スタック内のデータ (元の型とオブジェクト参照) はプライベートであり、他のスタックからアクセスすることはできません。
3. スタックは基本型変数領域、実行環境コンテキスト、演算命令領域(ストレージ操作命令)の3つに分かれています。
メソッド領域:
1. ヒープと同様に静的領域とも呼ばれ、すべてのスレッドによって共有されます。メソッド領域には、すべてのクラス変数と静的変数が含まれます。
2. メソッド領域には、クラス変数や静的変数など、プログラム全体で常に一意な要素が含まれます。
以上がスタックメモリ、ヒープメモリ、メソッド領域の関係の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。