展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

java虚拟机栈

  • 简介
⽤于作⽤于⽅法执⾏的⼀块Java内存区域
  • 作用
每个⽅法在执⾏的同时都会创建⼀个栈帧(Stack Framel)⽤于存储局部变量表、操作数栈、动态链接、⽅法出⼝等信息。
每⼀个⽅法从调⽤直⾄执⾏完成的过程,就对应着⼀个栈帧在虚拟机栈中⼊栈到出栈的过程
  • 代码案例
import java.util.concurrent.atomic.AtomicInteger;
public class A {
public static void a(){
System.out.println("enter method a");
}
public static void b(){
a();
System.out.println("enter method b");
}
public static void main(String[] args) {
b();
System.out.println("enter method main");
}
}
  • 执行结果

  • 先执行的方法先入栈

  • 先入栈的后出栈

  • 特点

局部变量表存放了编译期可知的各种基本数据类型(booleanbytecharshortintfloatlongdouble)以及对象引⽤(reference 类型)
如果线程请求的栈深度⼤于虚拟机所允许的深度,将抛出 StackOverflowError 异常
  • 模拟异常

  • 不断入栈,导致内存溢出

posted @   DogLeftover  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示