JVM——java虛擬機內存結構簡介

JAVA虛擬機內存結構示意圖線程

各區域介紹

程序計數器

    程序計數器,用來記錄每個線程正在執行的指令地址。每個線程有一個線程計數器,所以該區域是「線程私有」的內存,生命週期與線程相同。若是線程執行的是native本地方法,則程序計數器爲空。對象

虛擬機棧區

    每當線程執行一個方法時,虛擬機就會在這個區域建立一個棧幀,用於存儲局部變量、動態連接、方法出口等信息。該區域也是"線程私有"的內存。blog

本地方法棧

    本地方法棧主要是用來執行Native方法服務的生命週期

Java堆

    全部線程共享的一起區域,在虛擬機啓動的時候被建立。該區域惟一的目的就是保存對象實例,虛擬機內存管理也主要是對這一塊區域進行垃圾回收(GC)。爲了GC,虛擬機將本區域劃分了幾個子區域:新生代(Eden區、From Survivor區、To Survivor區)、老生代。內存

方法區

    用於存放虛擬機加載的類信息、常量、靜態變量、代碼數據等,此區域是一般意義上所指的永久代。運行時常量池屬於本方法區,用於存放各類字面常量與符號引用。虛擬機

相關文章
相關標籤/搜索