JAVA虚拟机栈
JAVA虛擬機棧幾個重要概念
java 虛擬機棧 = java virtual machine stacks = jvms
1、JVMS 線程私有,生命周期與線程相同
2、JVMS 描述的是JAVA方法執行的內存模型:JVMS在方法執行時會創建一個“棧幀” stack frame,用于記錄局部變量表、操作數棧、動態鏈接、方法出口等,每一個方法從調用到完成的過程,就是一個棧幀在JVMS中入棧到出棧的過程
3、局部變量表存放基本數據類型、對象引用、returnAddress(字節碼指令地址),long 和 double 占用2個局部變量空間(slot),其它占用1個空間;
???? 局部變量表所需要的內存空間在編譯期間完成分配,當進入一個方法時,這個方法在幀中需要分配多大的局部變量空間是完全確定的,方法運行期間無法改變局部變量表的大小
4、JVMS兩種異常
??? (1) 線程請求的棧深度大于JVM允許的深度,會拋出StackOverflowError異常
??? (2) JVM可以動態擴展,如果擴展時無法申請到足夠內存,會拋出OutOfMemoryError異常
轉載于:https://www.cnblogs.com/zxcgy/p/6648660.html
總結
- 上一篇: 理解列存储索引
- 下一篇: 喵哈哈村的魔法考试 Round #10