複習_棧、堆、方法區

java虛擬機的內存可以分爲三個區域:

  • 方法區

1.棧

1.棧描述的是方法執行的內存模型,每個方法被調用都會創建一個棧幀(存儲局部變量,操作數,方法出口等)
2.JVM爲每一個線程創建一個棧,用於存放該線程執行方法的信息(實際參數、局部變量等)
3.棧屬於線程私有,不能實現線程間的共享
4.棧的存儲特性是:先進後出,後進先出
5.棧是由系統自動分配的

內存分析詳解_棧_堆_方法區_棧幀_程序執行的內存變化過程

2.堆

1.堆用於存儲創建好的對象和數組(數組也是對象)
2.JVM只有一個堆,被所有線程共享
3.堆是一個不連續的內存空間,分配靈活,速度慢

3.方法區(又叫靜態區)

1.JVM只有一個方法區,被所有線程共享
2.方法區實際也是堆,只是用於存儲類,常量相關的信息!
3.用來存放程序中永遠是不變或唯一的內容(類信息[Class對象]、靜態變量、字符串常量等)

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