ホームページ  >  記事  >  Java  >  スタックメモリ、ヒープメモリ、メソッド領域の関係の解析

スタックメモリ、ヒープメモリ、メソッド領域の関係の解析

王林
王林転載
2020-07-30 16:37:282570ブラウズ

スタックメモリ、ヒープメモリ、メソッド領域の関係の解析

最初にコードを見てみましょう:

(推奨チュートリアル: 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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。