【搬運】堆和棧的區(qū)別是什么

很多人對于堆和棧的區(qū)別都感到迷惑,因此我們列出了許多堆和棧的問題和回答空幻,或許對你有幫助默责。

1. 堆和棧存儲在哪里?

堆和棧都存儲在計算機的RAM(Ramdon Access Memory)中陶夜。閱讀 How Virtual Memory Works 了解更多RAM的內(nèi)容。

2. 線程是如何操作堆和棧的 裆站?堆和棧在多線程條件下是如何工作的条辟?

在一個多線程的應用程序中,每一個線程都會有它自己的棧宏胯。但是羽嫡,所有的線程都會共享堆。在一個多線程的應用程序中肩袍,由于不同的線程共享堆杭棵,因此線程之間必須協(xié)作以保證它們不會在同一時間訪問或操作堆中的相同內(nèi)存。

3. 棧和堆中的內(nèi)存都存儲多久呢氛赐?

一旦一個函數(shù)運行完成了魂爪,該函數(shù)的棧中的數(shù)據(jù)將會被自動刪除。而堆中的任何數(shù)據(jù)需要程序手動刪除(或者通過垃圾回收機制回收)艰管,否則將將會一直保留在堆中滓侍。

4. 棧的大小可以增加嗎?堆的大小可以增加嗎蛙婴?

棧被設置成固定的大小粗井,并且大小不能增加(有些語言做了擴展允許增加棧大小)街图。因此浇衬,如果棧上沒有足夠的空間去分配內(nèi)存,會發(fā)生stack overflow錯誤餐济。這種情況常常發(fā)生如果有許多嵌套的函數(shù)被調(diào)用耘擂,或者這兒有個死循環(huán)調(diào)用。
如果分配內(nèi)存的時候堆的空間不夠絮姆,那么操作系統(tǒng)會給堆增加內(nèi)存醉冤。這是堆和棧最大的區(qū)別之一。

5. 堆和棧是怎么實現(xiàn)的篙悯?

堆和棧的實現(xiàn)依賴于語言蚁阳,編譯器和運行時。

6. 堆和棧哪個更快鸽照?為什么螺捐?

棧是更快且開銷更小。這是因為棧上內(nèi)存分配的方式:棧上分配內(nèi)存是非常簡單的,只需要向上移動棧指針定血。

7. 棧和堆上的內(nèi)存是如何回收的赔癌?

當變量超出范圍(?)時,棧上的數(shù)據(jù)是自動回收的澜沟。在C和C++中灾票,堆中存儲的數(shù)據(jù)必須由開發(fā)者利用以下關(guān)鍵字free,delete,或者delete[]手動刪除。其它語言像Java和.NET使用垃圾回收去自動從堆中刪除內(nèi)存茫虽,而不需要開發(fā)者做任何事刊苍。

8. 棧和堆用哪一個?

不同的語言有不同的機制席噩。



原文鏈接: difference-between-stack-and-heap

我做了什么:搬運原文班缰,簡單翻譯贤壁,保留了一些通用的問題和回答悼枢。如有錯誤,歡迎指正脾拆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馒索,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子名船,更是在濱河造成了極大的恐慌绰上,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渠驼,死亡現(xiàn)場離奇詭異蜈块,居然都是意外死亡,警方通過查閱死者的電腦和手機迷扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門百揭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜓席,你說我怎么就攤上這事器一。” “怎么了厨内?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵祈秕,是天一觀的道長。 經(jīng)常有香客問我雏胃,道長请毛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任瞭亮,我火速辦了婚禮方仿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己兼丰,他們只是感情好玻孟,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鳍征,像睡著了一般黍翎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艳丛,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天匣掸,我揣著相機與錄音,去河邊找鬼氮双。 笑死碰酝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的戴差。 我是一名探鬼主播送爸,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼暖释!你這毒婦竟也來了袭厂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤球匕,失蹤者是張志新(化名)和其女友劉穎纹磺,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亮曹,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡橄杨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了照卦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片式矫。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窄瘟,靈堂內(nèi)的尸體忽然破棺而出衷佃,到底是詐尸還是另有隱情,我是刑警寧澤蹄葱,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布氏义,位于F島的核電站,受9級特大地震影響图云,放射性物質(zhì)發(fā)生泄漏惯悠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一竣况、第九天 我趴在偏房一處隱蔽的房頂上張望克婶。 院中可真熱鬧,春花似錦、人聲如沸情萤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筋岛。三九已至娶视,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間睁宰,已是汗流浹背肪获。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柒傻,地道東北人孝赫。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像红符,于是被迫代替她去往敵國和親青柄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355