堆與棧的區(qū)別 面試 內(nèi)存中棧,堆,靜態(tài)區(qū)到底有什么區(qū)別?
內(nèi)存中棧,堆,靜態(tài)區(qū)到底有什么區(qū)別?通常,我們定義一個(gè)基本數(shù)據(jù)類型的變量、一個(gè)對(duì)象的引用、函數(shù)調(diào)用的現(xiàn)場(chǎng)存儲(chǔ)都使用內(nèi)存中的堆??臻g;而new關(guān)鍵字和構(gòu)造函數(shù)創(chuàng)建的對(duì)象放在堆空間中;程序中的文字值,如直
內(nèi)存中棧,堆,靜態(tài)區(qū)到底有什么區(qū)別?
通常,我們定義一個(gè)基本數(shù)據(jù)類型的變量、一個(gè)對(duì)象的引用、函數(shù)調(diào)用的現(xiàn)場(chǎng)存儲(chǔ)都使用內(nèi)存中的堆??臻g;而new關(guān)鍵字和構(gòu)造函數(shù)創(chuàng)建的對(duì)象放在堆空間中;程序中的文字值,如直接寫(xiě)的100、“hello”和常量放在堆空間中靜態(tài)區(qū)域。堆??臻g是最快的操作,但堆棧非常小。通常在堆空間中放置大量對(duì)象。理論上,其他進(jìn)程不使用的整個(gè)內(nèi)存空間,甚至硬盤(pán)上的虛擬內(nèi)存都可以用作堆空間。