卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

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

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

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

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

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

2)堆棧存儲:編譯時(shí)數(shù)據(jù)需求未知,確定運(yùn)行時(shí)模塊入口,動(dòng)態(tài)分配存儲。當(dāng)在操作過程中進(jìn)入一個(gè)程序模塊時(shí),在分配其內(nèi)存之前,必須知道該程序模塊所需的數(shù)據(jù)區(qū)的大小。

3)堆存儲:編譯時(shí)和運(yùn)行時(shí)的模塊條目無法確定,是動(dòng)態(tài)分配的。

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

1)兩者的關(guān)系:引用對象和數(shù)組時(shí),棧中定義的變量存儲的是堆中目標(biāo)的第一個(gè)地址。

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

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

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

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

(4)分配棧支持靜態(tài)和動(dòng)態(tài)分配,堆只能動(dòng)態(tài)分配。

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

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

C語言中有哪些存儲類型?

C語言中有四種存儲類型:auto、extern、register、static。存儲類型表示變量應(yīng)該在進(jìn)程的哪個(gè)段分配內(nèi)存空間,數(shù)據(jù)區(qū)、BBS區(qū)、堆棧區(qū)、堆區(qū)都可以為變量分配內(nèi)存存儲空間。

1.自動(dòng)存儲類型

Auto只能用于標(biāo)識局部變量的存儲類型。對于局部變量,auto是默認(rèn)的存儲類型,不需要由display指定。因此,由auto標(biāo)識的變量存儲在堆棧區(qū)域。

2.外部存儲類型

Extern用于聲明在當(dāng)前項(xiàng)目的其他文件中定義的全局變量在當(dāng)前文件中被引用。如果全局變量沒有初始化,它會被存儲在BBS區(qū),編譯時(shí)它的值會自動(dòng)賦為0。如果它已經(jīng)被初始化,它將被存儲在數(shù)據(jù)區(qū)。全局變量的生命周期,無論是否初始化,都是整個(gè)程序運(yùn)行的過程。為了節(jié)省內(nèi)存空間,在當(dāng)前文件中使用extern聲明其他文件中定義的全局變量時(shí),不會為它們分配內(nèi)存空間。

3.寄存器存儲類型

聲明為寄存器的變量從內(nèi)存轉(zhuǎn)移到CPU寄存器后,會停留在CPU寄存器中,所以訪問寄存器變量會大大提高效率,因?yàn)樵趯⒆兞繌膬?nèi)存轉(zhuǎn)移到寄存器的過程中節(jié)省了幾個(gè)指令周期。

4.靜態(tài)存儲類型

聲明為靜態(tài)類型的變量,不管是全局的還是局部的,都存儲在數(shù)據(jù)區(qū),它們的生命周期就是整個(gè)程序。如果它們是靜態(tài)局部變量,它們的作用域在一對{}內(nèi)。如果它們是靜態(tài)全局變量,那么它們的作用域是。對于當(dāng)前文件。靜態(tài)變量如果沒有初始化,會自動(dòng)初始化為0。靜態(tài)變量只能初始化一次。