Jvm内存结构
---
线程隔离区域说明:
唯一的一个在Java虚拟机规范中没有规定任何OOM情况的区域(不会OOM?)
在Java虚拟机规范中规定两种异常状况:
1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常;
2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM
PS:每一个方法在执行的同时都会创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态链接、方法出口等信息,每一个方法从调用到完成,就对应着一个栈帧从入栈到出栈的过程
在Java虚拟机规范中规定两种异常状况:
1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常;
2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM
PS:可以看出本地方法栈和Java虚拟机栈的特征基本一致。
区别是:Java虚拟机栈为执行Java方法服务,而本地方法栈为Native方法服务。
线程共享区域说明:
是Java垃圾回收主要的区域
存在OOM
好了,第一部分就这么讲完了,其实就这么些内容,后面会继续深入,慢慢来,不急不难
TO BE CONTINUE !
原文:https://www.cnblogs.com/wdssdream/p/11418439.html