JVM学习笔记

Java虚拟机栈

JVM虚拟机栈是线程私有的,每个线程都具有一个虚拟机栈,其内部保存一个个栈帧,对应着每个方法的调用。生命周期和线程周期相同

虚拟机栈的作用

主管Java程序的运行,进程如的栈帧存储着局部变量表,操作数栈,动态链接,方法返回值等

栈帧

栈帧是虚拟机栈的基本单位,栈帧的调入对应着方法的调用,栈帧的弹出对应着方法的结束和返回,其中,由于只有弹栈和入栈的操作,Java虚拟机栈没有GC机制但在栈空间不够时会出现StackOflowError错误,java虚拟机允许栈的大小是动态或者固定不变的(可通过-Xss命令实现栈的扩展),尽管可以通过命令调整栈大小,但不能无限制扩展,当栈无法申请到足够的内存会抛出OutOfMemoryError错误。

运行时栈帧结构

在这里插入图片描述

 在这里插入图片描述

 栈帧包括局部变量表,操作数栈,动态连接,方法返回地址和一些附加信息。其中局部变量表和操作数栈最为重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值