JVM笔记-6Java虚拟机栈(Java虚拟机栈基本认识)

学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。


Java虚拟机栈概述Java Virtual Machine Stacks

JVM是基于栈式架构的。

栈是运行时的单位,堆是存储的单位。

栈管运行,堆管存储。

虚拟机栈:

线程私有的。

内部保存栈帧,一个栈帧对应一个Java方法。


在主线程中,执行以上代码,所以这里就只有一个线程,即用一个栈表示。一个线程对应一个Java虚拟机栈。

栈顶的方法称为 当前方法。当方法b执行完,出栈,方法a变成当前方法。

一次次方法调用,就对应着一个个栈帧的入栈出栈。


局部变量可以是 八种基本数据类型、对象的引用地址(new的对象本身是存放在堆空间中的)

pc程序计数器:不存在gc、oom:就是存放下一条指令的地址。

Java虚拟机栈存在oom(内存溢出),不存在gc(操作简单进栈出栈);

栈:FILO(first in last out 先进后出)

队列:先进先出


开发中哪些常见的异常? 自己调自己 StackOverflowError 异常


设置栈大小

所需内存大于,设置虚拟机栈内存的值,会报错StackOverflowError。

经验分享 程序员 微信小程序 职场和发展