局部變量表:應用程序中定義的普通變量就存放在棧中,棧中變量的大小程序運行開始的時候已經固定。
棧:方法執行時創建棧針,然后進入到棧中,根據先進后出的順序進行執行。
堆:對重存放程序中創建的對象。
新生代:新生代分為三個區域。Eden,ServivorFrom,ServivorTo。新創建的對象先存放到Eden區域,當Eden區域放滿后,觸發GC。對象被轉移到Servivor,當Servivor滿了會觸發GC,再次留下來的對象進入老年代。
老年代:老年代的空間相對新生代要比較大,不會經常進行GC,主要存儲存活時間比較長的對象。
永久代:存放類加載的class文件,GC不會在主程序運行期對永久區域進行清理。在Java8中,永久代已經被移除,被一個稱為“元數據區”(元空間)的區域所取代。
方法區:存儲虛擬機加載的類信息,常量,靜態變量,即時編譯器編譯后的數據。