课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Java虚拟机栈
  • Java虚拟机栈

    发布:昆明Java培训      来源:达内新闻      时间:2016-08-15

  • 昆明java培训机构 的老师知道,与程序计数器一样,Java 虚拟机栈也是线程私有的,生命周期与线程相同。那我们今天就来说一说java虚拟机栈

    虚拟机栈描述的是 Java 方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

    局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double

    )、对象引用(reference类型,它不等同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置)和returnAddress类型(指向了一条字节码指令的地址)。

    其中64位长度的 long 和 double 类型的数据会占用2 个局部变量空间(Slot),其余的数据类型只占用一个。局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需要在帧中分配多大的局部变空间是完全确定的,在方法运行期间不会改变局部变量表的大小。

    在 Java 虚拟机规范中,对这个区域规定了两种异常状况:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出 StackOverflowError 异常;如果虚拟机栈可以动态扩展,如果扩展时无法申请到足够的内存,就会抛出 OutOfMemoryError 异常。

    说到这里不知道同学们有没有听懂,记得联系我们昆明java培训班的老师。

    推荐文章

上一篇:Java内存管理的程序计数器

下一篇:Java两项内存管理的方法

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56