Java虛擬機的內存大致分爲三個區域:
1、堆(Heap),此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例都在這裏分配內存。這一點在Java虛擬機規範中的描述是:所有的對象實例以及數組都要在堆上分配。
2、通常所說的棧(Stack),是指虛擬機棧。虛擬機棧用於存儲局部變量等。局部變量表存放了編譯期可知長度的各種基本數據類型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、對象引用(reference類型,它不等同於對象本身,是對象在堆內存的首地址)。 方法執行完,自動釋放。
3、方法區(Method Area),用於存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據。
這篇可擴展學習下。
https://blog.csdn.net/weixin_43303530/article/details/106297386
https://www.jianshu.com/p/4c80a972aedb