学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。
尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)
Java虚拟机栈概述Java Virtual Machine Stacks
JVM是基于栈式架构的。
栈是运行时的单位,堆是存储的单位。
栈管运行,堆管存储。
虚拟机栈:
线程私有的。
内部保存栈帧,一个栈帧对应一个Java方法。
在主线程中,执行以上代码,所以这里就只有一个线程,即用一个栈表示。一个线程对应一个Java虚拟机栈。
栈顶的方法称为 当前方法。当方法b执行完,出栈,方法a变成当前方法。
一次次方法调用,就对应着一个个栈帧的入栈出栈。
局部变量可以是 八种基本数据类型、对象的引用地址(new的对象本身是存放在堆空间中的)
pc程序计数器:不存在gc、oom:就是存放下一条指令的地址。
Java虚拟机栈存在oom(内存溢出),不存在gc(操作简单进栈出栈);
栈:FILO(first in last out 先进后出)
队列:先进先出
开发中哪些常见的异常? 啥是异常?
自己调自己 StackOverflowError 异常
设置栈大小
所需内存大于,设置虚拟机栈内存的值,会报错StackOverflowError。