1.方法區
方法區存放了類的信息、靜態變量、構造函數、類方法等信息,方法區是全局共享的。
2.堆
存放對象實例及數組,線程共享
3.虛擬機棧
虛擬機棧存放棧幀,當調用java方法時,會產生一個棧幀併入棧,當方法調用完成時,棧幀出棧。棧幀中存放着局部變量表、動態鏈接、操作數和方法出口等信息。線程私有
4.本地方法棧
跟虛擬機棧一樣,本地方法棧是native方法,而虛擬機棧是java方法
5.程序計數器
線程私有,JVM在解釋字節碼文件時,存儲當前線程的字節碼行號。原理是通過改變程序計數器的值來獲取下一條指令