更新時間:2023-02-10 16:44:16 來源:動力節(jié)點 瀏覽2165次
Java虛擬機的內(nèi)存可以分為三個區(qū)域:棧stack、堆heap、方法區(qū)method area,方法區(qū)其實在堆的內(nèi)部。JVM的內(nèi)存總構(gòu)成為棧和堆。
棧stack
棧的特點如下:
1.棧描述的是方法執(zhí)行的內(nèi)存模型。毎個方法被調(diào)用都會創(chuàng)建一個棧幀(存儲局部變量、操作數(shù)、方法出口等)
2.JVM為每個線程創(chuàng)建一個棧,用于存放該線程執(zhí)行方法的信息(實際參數(shù)、局部變量等)
3.棧屬于線程私有,不能實現(xiàn)線程間的共享
4.棧的存儲特性是“先進(jìn)后出,后進(jìn)先出”(彈夾效果)
5.棧是由系統(tǒng)自動分配,速度快!棧是一個連續(xù)的內(nèi)存空間
堆
堆的特點如下:
1.堆用于存儲創(chuàng)建好的對象和數(shù)組(數(shù)組也是對象)
2.JVM只有一個堆,被所有線程共享
3.堆是一個不連續(xù)的內(nèi)存空間,分配靈活,速度慢!
方法區(qū)
方法區(qū)(又叫靜態(tài)區(qū))特點如下
1.JVM只有一個方法區(qū),被所有線程共享!
2.方法區(qū)實際也是堆,只是用于存儲類、常量相關(guān)的信息!
3.用來存放程序中永遠(yuǎn)是不變或唯一的內(nèi)容。(類信息【 Class對象】、靜態(tài)變量、字符串常量等)
以上就是動力節(jié)點小編介紹的"棧、堆、方法區(qū)這三個的特點都是?",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您務(wù)。
初級 202925
初級 203221
初級 202629
初級 203743