JAVA堆是被所有線程共享的一塊內存區域,在虛擬機啟動時創建。此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例以及數組都要在堆上分配。
由于現在收集器基本都是采用分代收集算法,所以JAVA堆還可以細分為:新生代和老年代。新生代又可以再細分為Eden空間、From Survivor空間、To Survivor空間。
方法區(又稱永久代)用于存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。
方法區的一部分,Class文件中除了有類的版本、字段、方法、接口等描述信息外,還有一項信息就是常量池,用于存放編譯期生成的各種字面量和符號引用,這部分內容將在類加載后存放到方法區的運行時常量池中。
新聞熱點
疑難解答