==
标签(空格分隔): jvm
学习笔记全部来自于《深入理解java虚拟机》总结
虚拟机栈(Java Virtual Machine Stacks):
为虚拟机执行java方法(字节码)服务
异常
- 如果线程请求的栈深度大于虚拟机所允许的深度,将会跑出StackFlowError(栈溢出)异常
- 如果扩展时无法申请到足够内存就会抛出OutOfMemoryError(内存溢出)异常
本地方法栈(Native Method Stack):
为虚拟机执行Native方法服务
异常与虚拟机栈一样
Java堆(Java Heap)线程共享:
存放对象实例
GC堆
方法区(Method Area)线程共享:
用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
异常
- 方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。
用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。
原文:https://www.cnblogs.com/lancexu/p/9505502.html