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

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

尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)


虚拟机栈概述

JVM是基于栈式架构的。
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第1张图片

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

栈管运行,堆管存储。

JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第2张图片
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第3张图片
虚拟机栈:

线程私有的。

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


JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第4张图片
在主线程中,执行以上代码,所以这里就只有一个线程,即用一个栈表示。一个线程对应一个Java虚拟机栈。

JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第5张图片
栈顶的方法称为 当前方法。当方法b执行完,出栈,方法a变成当前方法。

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


JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第6张图片
局部变量可以是 八种基本数据类型、对象的引用地址(new的对象本身是存放在堆空间中的)

JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第7张图片
pc程序计数器:不存在gc、oom:就是存放下一条指令的地址。

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

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

队列:先进先出


开发中哪些常见的异常? 啥是异常?
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第8张图片
自己调自己 StackOverflowError 异常
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第9张图片


设置栈大小
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第10张图片

JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第11张图片
JVM笔记-6 Java Virtual Machine Stacks(Java虚拟机栈基本认识)_第12张图片
所需内存大于,设置虚拟机栈内存的值,会报错StackOverflowError。

你可能感兴趣的:(jvm,java,jvm)