大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“怎么理解Java虚拟机”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联专注于中大型企业的成都网站设计、网站制作和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户近1000家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
Jvm内存结构
>线程隔离区域说明:
线程私有
是一块内存空间
唯一的一个在Java虚拟机规范中没有规定任何OOM情况的区域(不会OOM?)
线程私有
声明周期与线程相同
在Java虚拟机规范中规定两种异常状况: 1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常; 2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM PS:每一个方法在执行的同时都会创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态链接、方法出口等信息,每一个方法从调用到完成,就对应着一个栈帧从入栈到出栈的过程
线程私有
声明周期与线程相同
在Java虚拟机规范中规定两种异常状况: 1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常; 2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM
PS:可以看出本地方法栈和Java虚拟机栈的特征基本一致。 区别是:Java虚拟机栈为执行Java方法服务,而本地方法栈为Native方法服务。
> 线程共享区域说明:
线程共享
存放对象实例
虚拟机内存中最大的一块
逻辑连续,物理不需要连续
存在OOM
是Java垃圾回收主要的区域
线程共享
存储被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
≈永久代(Permanent Generation)本质不等价
不需要连续内存
存在垃圾回收,但是回收区域仅限于常量池和类型的卸载
存在OOM
“怎么理解Java虚拟机”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!