成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

java空間(jvm元空間與堆和棧的區(qū)別?)

jvm元空間與堆和棧的區(qū)別?1內(nèi)存分配策略1)靜態(tài)存儲(chǔ):在編譯時(shí)確定每個(gè)數(shù)據(jù)目標(biāo)在運(yùn)行時(shí)的存儲(chǔ)空間需求(代碼中沒有不可變的數(shù)據(jù)結(jié)構(gòu),沒有嵌套遞歸)。2)堆棧存儲(chǔ):編譯時(shí)數(shù)據(jù)需求未知,運(yùn)行時(shí)確定模塊入口

java空間(jvm元空間與堆和棧的區(qū)別?)

jvm元空間與堆和棧的區(qū)別?

1內(nèi)存分配策略

1)靜態(tài)存儲(chǔ):在編譯時(shí)確定每個(gè)數(shù)據(jù)目標(biāo)在運(yùn)行時(shí)的存儲(chǔ)空間需求(代碼中沒有不可變的數(shù)據(jù)結(jié)構(gòu),沒有嵌套遞歸)。

2)堆棧存儲(chǔ):編譯時(shí)數(shù)據(jù)需求未知,運(yùn)行時(shí)確定模塊入口,動(dòng)態(tài)分配存儲(chǔ)。當(dāng)你在運(yùn)行時(shí)進(jìn)入一個(gè)程序模塊時(shí),你必須知道程序模塊需要的數(shù)據(jù)區(qū)的大小,然后才能分配它的內(nèi)存。

3)堆存儲(chǔ):編譯時(shí)和運(yùn)行時(shí)無(wú)法確定模塊入口,動(dòng)態(tài)分配。

2Java內(nèi)存模型中的堆和棧

1)它們之間的聯(lián)系:引用對(duì)象和數(shù)組時(shí),棧中定義的變量存儲(chǔ)的是堆中目標(biāo)的第一個(gè)地址。

2)兩者的區(qū)別:

(1)管理模式:棧自動(dòng)釋放(對(duì)應(yīng)方法完成),棧需要GC(垃圾收集機(jī)制)。

(2)空間大?。憾汛笥跅?。

(3)碎片:堆棧產(chǎn)生的碎片比堆產(chǎn)生的碎片要小得多。

(4)分配方式:Stack支持靜態(tài)和動(dòng)態(tài)分配,而heap只能動(dòng)態(tài)分配。

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

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