JVM學習(三)——堆和棧的區(qū)別

在學習JVM運行機制的時候瘪阁,運行時數(shù)據(jù)內(nèi)存分為堆內(nèi)存和棧內(nèi)存软驰;記得看Thking in Java時呻逆,曾看到過簿废,棧內(nèi)存存放的是基本類型的變量和對象的引用空入;而堆內(nèi)存存放的則是對象;


堆內(nèi)存

作用是用于存儲Java中的對象和數(shù)組族檬,當我們new一個對象或者創(chuàng)建一個數(shù)組的時候歪赢,就會在堆內(nèi)存中開辟一段空間給它,用于存放

堆內(nèi)存的特點

1.堆可以看做隊列单料,先進先出埋凯,后進后出

2.堆可以動態(tài)分配內(nèi)存大小点楼,生存期也不必事先告訴編譯器;因為其時運行時動態(tài)分配內(nèi)存的白对;

3.運行時動態(tài)分配內(nèi)存掠廓,存取速度慢

new對象在堆中的分配

由JVM的自動辣雞回收器管理

棧內(nèi)存

棧內(nèi)存是Java的另一種內(nèi)存,主要是用來執(zhí)行程序用的甩恼,比如:基本類型的變量和對象的引用變量

棧內(nèi)存的特點

1.先進后出蟀瞧,后進先出
2.存取速度比堆快,僅次于寄存器媳拴;堆數(shù)據(jù)可共享
3.存在棧中的數(shù)據(jù)大小和生存周期是確定的黄橘,缺乏靈活性

棧內(nèi)存分配機制

棧內(nèi)存可以稱為一級緩存,由垃圾回收器自動回收

數(shù)據(jù)共享

int a = 3;
int b = 3;

1.編譯器處理int a = 3;創(chuàng)建a的引用;在棧中查找是否有3這個值屈溉;若沒有則將3存放塞关,a指向3;

2.處理int b = 3;創(chuàng)建b的引用;在棧中找到了3子巾,直接賦值;

3.若a = 4;則將a指向4;

棧和堆的區(qū)別

JVM是基于堆棧的虛擬機.JVM為每個新創(chuàng)建的線程都分配一個堆棧.也就是說,對于一個Java程序來說帆赢,它的運行就是通過對堆棧的操作來完成的。堆棧以幀為單位保存線程的狀態(tài)线梗。JVM對堆棧只進行兩種操作:以幀為單位的壓棧和出棧操作

差異

1.堆內(nèi)存用來存放由new創(chuàng)建的對象和數(shù)組椰于。
2.棧內(nèi)存用來存放方法或者局部變量等
3.堆是先進先出,后進后出
4.棧是后進先出仪搔,先進后出

相同

1.都是屬于Java內(nèi)存的一種
2.系統(tǒng)都會自動去回收它瘾婿,但是對于堆內(nèi)存一般開發(fā)人員會自動回收它


出處:http://blog.csdn.net/u011546655/article/details/52170470

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市烤咧,隨后出現(xiàn)的幾起案子偏陪,更是在濱河造成了極大的恐慌,老刑警劉巖煮嫌,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笛谦,死亡現(xiàn)場離奇詭異,居然都是意外死亡昌阿,警方通過查閱死者的電腦和手機饥脑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懦冰,“玉大人灶轰,你說我怎么就攤上這事∷⒏郑” “怎么了框往?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闯捎。 經(jīng)常有香客問我椰弊,道長许溅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任秉版,我火速辦了婚禮贤重,結果婚禮上,老公的妹妹穿的比我還像新娘清焕。我一直安慰自己并蝗,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布秸妥。 她就那樣靜靜地躺著滚停,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粥惧。 梳的紋絲不亂的頭發(fā)上键畴,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音突雪,去河邊找鬼起惕。 笑死,一個胖子當著我的面吹牛咏删,可吹牛的內(nèi)容都是我干的惹想。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼督函,長吁一口氣:“原來是場噩夢啊……” “哼嘀粱!你這毒婦竟也來了?” 一聲冷哼從身側響起辰狡,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤锋叨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后搓译,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悲柱,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡锋喜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年些己,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘿般。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡段标,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出炉奴,到底是詐尸還是另有隱情逼庞,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布瞻赶,位于F島的核電站赛糟,受9級特大地震影響派任,放射性物質發(fā)生泄漏。R本人自食惡果不足惜璧南,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一掌逛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧司倚,春花似錦豆混、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盒粮,卻和暖如春鸵鸥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拆讯。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工脂男, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人种呐。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓宰翅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爽室。 傳聞我的和親對象是個殘疾皇子汁讼,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • JVM內(nèi)存模型Java虛擬機(Java Virtual Machine=JVM)的內(nèi)存空間分為五個部分,分別是: ...
    光劍書架上的書閱讀 2,483評論 2 26
  • 前言 不知道大家有沒有這樣一種感覺,程序員的數(shù)量井噴了啸箫∷时耄可能是因為互聯(lián)網(wǎng)火了,也可能是各家培訓機構為我們拉來了大量...
    活這么大就沒飽過閱讀 2,713評論 6 26
  • 在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配忘苛。 當在一段代碼塊定義一個變量時蝉娜,Java就...
    木有魚丸啦閱讀 542評論 0 0
  • 這篇文章是我之前翻閱了不少的書籍以及從網(wǎng)絡上收集的一些資料的整理,因此不免有一些不準確的地方扎唾,同時不同JDK版本的...
    高廣超閱讀 15,545評論 3 83
  • 從三月份找實習到現(xiàn)在召川,面了一些公司,掛了不少胸遇,但最終還是拿到小米荧呐、百度、阿里、京東倍阐、新浪概疆、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,184評論 11 349