搜尋
首頁JavaJava入門棧記憶體、堆疊記憶體與方法區的關係分析

棧記憶體、堆疊記憶體與方法區的關係分析

先看一下程式碼:

(推薦教學: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棧記憶體中,並指向堆記憶體的兩個實例

堆區:

1、儲存的全部是對象,每個物件都包含一個與之對應的class的資訊。 (class的目的在於得到操作指令)

2、jvm只有一個堆區(heap)被所有執行緒共享,堆中不存放基本型別和物件引用,只存放物件本身。

堆疊區:

1、每個執行緒包含一個堆疊區,堆疊中只保存基礎資料型別的物件和自訂物件的參考(不是物件),物件都存放在堆區中

2、每個堆疊中的資料(原始型別和物件參考)都是私有的,其他堆疊不能存取。

3、堆疊分為3個部分:基本類型變數區、執行環境上下文、操作指令區(存放操作指令)。

方法區:

1、又叫靜態區,跟堆一樣,被所有的執行緒共用。方法區包含所有的class和static變數。

2、方法區包含的都是在整個程式中永遠唯一的元素,如class,static變數。

以上是棧記憶體、堆疊記憶體與方法區的關係分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!