12.虛擬機棧概述

1. 內存中的棧與堆

棧是運行時單位,堆是存儲的單位。
棧解決程序的運行問題,即程序如何執行,或者說如何處理數據。
堆解決的是數據存儲的問題,即數據怎麼放、放在哪兒。
在這裏插入圖片描述
1.每個線程在創建的時候都會創建一個虛擬機棧。棧是線程私有的。
棧中存儲的是一個個棧幀。
一個棧幀對應於一個java方法。
生命週期:
2.生命週期和線程一致。隨着線程的創建而創建,隨着線程的消亡而消亡。
作用:
3.保存方法的局部變量(8種基本數據類型、對象的引用地址)、部分結果,參與方法的調用和返回。
局部變量注意和成員變量區分開。
在這裏插入圖片描述

2.棧的優點

1.棧只有進棧和出棧兩種操作,所以速度很快,僅次於程序計數器。
2.每個方法執行,伴隨着進棧。方法執行完成,伴隨着出棧。
3.棧不存在GC,因爲只存在進棧和出棧兩種操作。但是棧存在OOM。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章