欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jvm元空間與堆和棧的區別

呂致盈2年前46瀏覽0評論

jvm元空間與堆和棧的區別?

1內存分配策略

1)靜態存儲:編譯時確定每個數據目標在運行時的存儲空間需求(代碼中無可變數據結構無嵌套遞歸)。

2)棧式存儲:數據需求在編譯時未知,運行時模塊入口確定,動態分配存儲,在運行中進入一個程序模塊時,必須知道該程序模塊所需要的數據區的大小才能分派其內存。

3)堆式存儲:編譯時和運行時模塊入口無法確定,動態分配。

2Java內存模型中的堆與棧

1)二者聯系:引用對象、數組時棧里定義的變量保存的是堆中目標的首地址。

2)二者區別:

(1)管理方式:棧自動釋放(對應方法執行完畢),堆需要GC(垃圾回收機制)

(2)空間大小:堆比棧大。

(3)碎片:棧產生的碎片遠小于堆產生的碎片。

(4)分配方式:棧支持靜態和動態分配,堆只能動態分配。

(5)效率:堆比棧的效率低。

(6)棧為線程私有,堆為線程共享。

java 內存結構,jvm元空間與堆和棧的區別