400-650-7353

精品課程

堆和棧的區(qū)別 堆和棧有什么區(qū)別?

發(fā)布: Java培訓(xùn) 發(fā)布時(shí)間:2021-08-26 14:17:04

推薦答案
品牌型號(hào):聯(lián)想 YOGA 14c/系統(tǒng)版本:windows7

一、空間分配不同:

1、堆區(qū)(heap)— 由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表。

2、棧區(qū)(stack)— 由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。

二、分配空間不同:

1.、Java的堆是一個(gè)運(yùn)行時(shí)數(shù)據(jù)區(qū),類的對(duì)象從堆中分配空間。這些對(duì)象通過new等指令建立,通過垃圾回收器來銷毀。

2 、棧中主要存放一些基本數(shù)據(jù)類型的變量(byte,short,int,long,float,double,boolean,char)和對(duì)象的引用。

三、緩存方式不同:

1、堆是存放在二級(jí)緩存中,生命周期由虛擬機(jī)的垃圾回收算法來決定。所以,調(diào)用這些對(duì)象的速度相對(duì)來得低一些。

2、棧使用的是一級(jí)緩存,通常被調(diào)用時(shí)處于存儲(chǔ)空間中,調(diào)用完畢立即釋放。

四、數(shù)據(jù)結(jié)構(gòu)不同:

1、堆的數(shù)據(jù)結(jié)構(gòu)可以被看成是一棵樹,如堆排序。

2、棧是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。

(推薦課程:Java基礎(chǔ)技術(shù)詳解)

其它答案
冰闊落2020-06-22 18:56:36

一、申請(qǐng)后系統(tǒng)的響應(yīng)

棧:只要棧的剩余空間大于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提示棧溢出。

堆:首先應(yīng)該知道操作系統(tǒng)有一個(gè)記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),會(huì)遍歷該鏈表,尋找第一個(gè)空間大于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈表中刪除,并將該結(jié)點(diǎn)的空間分配給程序。

二、申請(qǐng)效率的比較

棧:由系統(tǒng)自動(dòng)分配,速度較快。但程序員是無法控制的。

堆:由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便。

三、堆和棧中的存儲(chǔ)內(nèi)容

棧:在函數(shù)調(diào)用時(shí),第一個(gè)進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語句的下一條可 執(zhí)行語句)的地址,然后是函數(shù)的各個(gè)參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入棧 的,然后是函數(shù)中的局部變量。

堆:一般是在堆的頭部用一個(gè)字節(jié)存放堆的大小。堆中的具體內(nèi)容由程序員安排。


中公旗下IT培訓(xùn)品牌

  • 中公教育品牌

     中公教育是一家中國領(lǐng)先的全品類職業(yè)教育機(jī)構(gòu),提供超過100個(gè)品類的綜合職業(yè)就業(yè)培訓(xùn)服務(wù)。公司在全國超過1000個(gè)直營(yíng)網(wǎng)點(diǎn)展開經(jīng)營(yíng),深度覆蓋300多個(gè)地級(jí)市,并正在快速向數(shù)千個(gè)縣城和高校擴(kuò)張。

  • 完善就業(yè)體系

    通過階段性授課機(jī)制,和每階段的定期考核,先讓學(xué)員能夠?qū)W會(huì)所學(xué)內(nèi)容,才能找打合適工作。最后一個(gè)階段為就業(yè)課程,從技術(shù)和面試兩個(gè)方面加深就業(yè)能力,并且還有不定期的雙選會(huì)供大家選擇。

  • 全程面授+實(shí)戰(zhàn)技術(shù)

    線下課程全程是師資面對(duì)面教學(xué),不會(huì)存在上課只對(duì)著大屏幕上課的情況,有問題都可以在課上得到解答。并且優(yōu)就業(yè)通過自主研發(fā)大綱和學(xué)習(xí)路線,并且定期更新課程所學(xué)技術(shù),讓大家所學(xué)技術(shù)不落伍。

中公優(yōu)就業(yè)專業(yè)職業(yè)規(guī)劃老師

為您詳細(xì)答疑解惑,更能領(lǐng)取免費(fèi)課程

相關(guān)問題

更多課程

專業(yè)課程老師將第一時(shí)間為您解答

立即答疑
修改
優(yōu)就業(yè):ujiuye

關(guān)注中公優(yōu)就業(yè)官方微信

  • 關(guān)注微信回復(fù)關(guān)鍵詞“大禮包”,領(lǐng)80G學(xué)習(xí)資料