JVM学习记录六:运行时数据区-虚拟机栈
栈是运行时的单位,堆是存储的单位
虚拟机栈内部保存一个个栈帧,对应一次次方法的调用
线程私有,生命周期和线程一致,展示一种快速分配存储的方式,访问速度仅次于程序计数器,不存在垃圾回收问题
主管java程序的运行,保存方法的局部变量(基本数据类型,对象的引用地址)
jvm虚拟机规范允许java栈的大小是动态的或者是固定不变的
固定不变的:每一个线程的虚拟机栈容量可以在线程创建的时候独立选定,如果超过了这个虚拟机栈允许的最大容量JVM就会抛出StackOverFlowError
动态扩展: 在尝试扩展的时候无法申请足够的内存,或者在创建新的线程时没有足够的内存去创建虚拟机栈就会抛出OutOfMemoryError
IDEA 设置栈内存方式: