JVM的栈
棧
棧的基本單位是幀,或棧幀
Java線程
每當(dāng)一個(gè)Java線程運(yùn)行的時(shí)候
Java虛擬機(jī)會(huì)為該線程分配一個(gè)Java棧
該線程在執(zhí)行某個(gè)Java方法的時(shí)候,向Java棧壓入一個(gè)幀
這個(gè)幀用于存儲(chǔ)參數(shù)、局部變量、操作數(shù)、中間運(yùn)算結(jié)果等。
當(dāng)這個(gè)方法執(zhí)行完的時(shí)候,幀會(huì)從棧中彈出
私有性
棧上的所有數(shù)據(jù)是私有的,其他線程,都不能訪問該線程的棧數(shù)據(jù)
在函數(shù)中定義的一些基本類型的變量數(shù)據(jù),和對(duì)象的引用變量
都在函數(shù)的棧內(nèi)存中分配
當(dāng)在一段代碼塊中定義一個(gè)變量時(shí),Java就在棧中為這個(gè)變量分配內(nèi)存空間
當(dāng)該變量退出該作用域后,Java會(huì)自動(dòng)釋放掉為該變量所分配的內(nèi)存空間
該內(nèi)存空間可以立即被另作他用
總結(jié)