1. 程式人生 > >JVM的內存劃分

JVM的內存劃分

內存開辟 堆內存 寄存器 數據 class clas span tro lean

1.棧內存:棧內存主要是用來運行函數的,在函數中定義的所有變量,都會在這個內存開辟空間。

     在棧內存中定義的變量,不初始化,是不能直接使用的。

註意:所有的函數都必須在棧內存中運行。

   而jvm只會運行處於棧內存頂部的函數。

   函數被加載到棧內存的動作,稱為函數的壓棧(入棧)。

   函數執行完之後就會從棧中消失(函數的彈棧,或者叫做出棧)

2.堆內存:在程序中使用new 關鍵字創建出來的所有東西,都會保存在堆內存中。

     堆內存中開辟的空間,不賦值,都會有默認的初始化數據。

註意:  

  整數:默認是0

  小數 :默認0.0.

  boolean: 默認是false

  char: 默認是

‘\u0000’ 在內存中表示空字符

3.方法區JVM在加載class文件的時候,所有的class文件就要加載在這個內存中。

4.本地方法區:主要是保存native關鍵字標註的方法

5.寄存器:是給CPU使用的。

JVM的內存劃分