運行時數據區包括:虛擬機棧區,堆區,方法區,本地方法棧,程序計數器數組
虛擬機棧區 :也就是咱們常說的棧區,線程私有,存放基本類型,對象的引用和 returnAddress ,在編譯期間完成分配。線程
堆區 , JAVA 堆,也稱 GC 堆,全部線程共享,存放對象的實例和數組, JAVA 堆是垃圾收集器管理的主要區域。對象
方法區 :全部線程共享,存儲已被虛擬機加載的類信息,常量,靜態變量,即時編譯器編譯後的代碼等數據。這個區域的內存回收目標主要是針對常量池的對象的回收和對類型的卸載。內存
程序計數器 :線程私有,每一個線程都有本身獨立的程序計數器,用來指示下一條指令的地址。編譯器