码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA虚拟机栈

时间:2017-03-30 23:28:07      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:res   address   ble   栈帧   基本   bsp   地址   flow   编译   

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异常

JAVA虚拟机栈

标签:res   address   ble   栈帧   基本   bsp   地址   flow   编译   

原文地址:http://www.cnblogs.com/zxcgy/p/6648660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!