拿下面試,5個點搞定JVM內存模型(帶圖解)

JVM內存模型五個點:

  • 程序計數器:

作用:爲記錄下一條要運行的指令
特點:每個線程私有內存中都對應着 一個絕對獨立的計數器。

  • java虛擬機棧

作用:保存有 局部變量( boolean,byte,short,char,int,long, float,double)、正在執行的每個方法;
特點:線程私有,即使兩個線程在執行完全相同的代碼,仍然無法共享他們的局部變量,只能**「自己玩自己的」**

  • 本地方法棧:與前兩者共同構成線程堆棧(ThreadStack)

作用:用於管理本地方法的調用
特點:線程私有,佔用空間大小遠遠小於堆

  • JAVA堆

作用:存儲由Java應用程序中創建的所有對象對象本身和數組
特點:線程共享,線程不安全的;JVM 所管理的內存中最大的一塊區域

  • 方法區:與JAVA堆組成堆區(heap

作用:存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據。
特點:線程共享;

  • JVM內存模型圖解
    在這裏插入圖片描述