search

解釋記憶體中的棧堆和靜態區的用法

解釋記憶體中的棧堆和靜態區的用法

  記憶體中的棧,堆和靜態區的用法:

  1、堆區:專門用來儲存物件的例項(new建立的物件和陣列),實際上也只是儲存物件例項的屬性值,屬性的型別和物件本身的型別標記等,並不儲存物件的方法。

  2、棧區:物件例項在Heap中分配好以後,需要在Stack中儲存一個4位元組的Heap記憶體地址,用來定位該物件例項在Heap中的位置,便於找到該物件例項。

  3、靜態區/方法區:方法區又叫靜態區,跟堆一樣,被所有的執行緒共享。方法區包含所有的class和static變數。方法區中包含的都是在整個程式中永遠唯一的元素,如class,static變數。全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。

c語言中堆和棧的區別

  c語言中堆和棧的區別分為:空間分配區別、快取方式區別、資料結構區別。

  堆和棧空間分配區別:

  棧(作業系統):由作業系統自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

  堆(作業系統):一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由OS回收,分配方式倒是類似於連結串列。

  堆疊快取方式區別:

  棧使用的是一級快取,他們通常都是被呼叫時處於儲存空間中,呼叫完畢立即釋放。

  堆是存放在二級快取中,生命週期由虛擬機器的垃圾回收演算法來決定(並不是一旦成為孤兒物件就能被回收)。所以呼叫這些物件的速度要相對來得低一些。

  堆疊資料結構區別:

  堆(資料結構):堆可以被看成是一棵樹,如:堆排序。

  棧(資料結構):一種先進後出的資料結構。

記憶體堆和棧的區別

  棧:記憶體由編譯器在需要時自動分配和釋放。通常用來儲存區域性變數和函式引數。為執行函式而分配的區域性變數、函式引數、返回地址等存放在棧區。棧運算分配內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限。

  堆:記憶體使用new進行分配,使用delete或delete釋放。如果未能對記憶體進行正確的釋放,會造成記憶體洩漏。但在程式結束時,會由作業系統自動回收。


有什麼區別

  堆和棧的區別主要有五大點,分別是:   1、   申請方式的不同。棧由系統自動分配,而堆是人為申請開闢;   2、   申請大小的不同。棧獲得的空間較小,而堆獲得的空間較大;   3、   申請效率的不同。棧由系統自動分配,速度較快,而堆一般速度比較慢;   4、   儲存內容的不同。棧在函式呼叫時,函式 ...

的區別

  堆疊空間分配區別:1.棧(作業系統):由作業系統自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧;2.堆(作業系統): 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由OS回收,分配方式倒是類似於連結串列。   堆疊快取方式區別:1.棧使用的是一級快取, ...

男士筒襪高筒襪的別是什麼

  1、外形不同:男士的中筒襪相比高筒襪要短一些。   2、來源不同:中筒襪起源於蘇格蘭的上層社會;而長筒襪最早出現在公元前4-5世紀,是由古希臘人和羅馬人發明的。   3、搭配不同:男士中筒襪是生活中較常見的一種,可以根據服裝隨意搭配;而長筒襪主要是用於運動,例如籃球、足球等。   襪子最早也稱之為“足衣” ...

男士筒襪高筒襪的別是什麼

  1、外形不同:男士的中筒襪相比高筒襪要短一些。   2、來源不同:中筒襪起源於蘇格蘭的上層社會;而長筒襪最早出現在公元前4-5世紀,是由古希臘人和羅馬人發明的。   3、搭配不同:男士中筒襪是生活中較常見的一種,可以根據服裝隨意搭配;而長筒襪主要是用於運動,例如籃球、足球等。 ...

冷器水箱的別是什麼

  中冷器和散熱器的區別:   一、本質的不同:   中冷器實際上是渦輪增壓的配套件,其作用在於降低增壓後的高溫空氣溫度、以降低發動機的熱負荷,提高進氣量,進而增加發動機的功率。對於增壓發動機來說,中冷器是增壓系統的重要組成部件。散熱器是熱水(或蒸汽)採暖系統中重要的、基本的組成部件。   二、分類不同:   ...

莊子的成語解釋

  1、鵬程萬里:比喻前程非常遠大;   2、扶搖直上:形容上升很快。比喻仕途得意;   3、越俎代庖:比喻超出自己職務範圍去處理別人所管的事;   4、大而無當:原意為“東西很大但沒有什麼用處或者用處不大不適合”,後引申為“誇大而不合實際,‘形容不著邊際’”;   5、心如死灰:成語釋義:死灰:已冷卻的灰燼 ...

簡述的區別聯絡

  堆和棧的對比分析:   1、堆疊空間配不同。   棧:是由作業系統自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。   堆: 是由程式設計師分配釋放,如果程式設計師不釋放,程式結束時可由OS回收,分配方式類似於連結串列。   2、堆疊快取方式不同。   棧:使用的是一級快 ...