JVM內存結構

JVM內存結構

一圖瞭解JVM內存結構

image.png

途中藍色部分是各線程共享的數據區,其它結構是線程隔離的數據區。數組

各內存結構功能

  • 程序計數器
    程序計數器是線程私有的。程序計數器是當前線程所執行字節碼的行號指示器。
  • Java虛擬機棧緩存

    Java虛擬機棧是線程私有的。虛擬機棧描述的是Java方法執行的線程內存模型,每一個方法執行的時候,Java虛擬機棧都會建立一個棧幀。而每一個棧幀中主要包含四個部分:局部變量表,操做數棧,動態鏈接,方法出口。spa

  • 本地方法棧線程

    本地方法棧也是線程私有的。與虛擬機棧類似,只不過虛擬機棧爲字節碼服務,而本地方法棧爲本地方法(Native方法)服務。對象

  • Java堆接口

    Java堆是虛擬機所管理的內存中最大的一塊。Java堆是被全部線程共享的一塊虛擬內存區域。在虛擬機啓動時建立。Java堆的惟一目的就是存放對象實例,全部的對象實例以及數組都應在堆上分配。內存

  • 方法區編譯器

    方法區是各個線程共享的內存區域,它用於存儲已被虛擬機加載的類型信息、常量、靜態變量、即時編譯器編譯後的代碼緩存等數據。虛擬機

    • 運行時常量池it

      Class文件中除了有類的版本、字

      段、方法、接口等描述信息外,還有一項信息是常量池表(Constant Pool Table),用於存放編譯期生

      成的各類字面量與符號引用,這部份內容將在類加載後存放到方法區的運行時常量池中

相關文章
相關標籤/搜索