怎么理解Java虚拟机

本篇内容介绍了“怎么理解Java虚拟机”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联专注于中大型企业的成都网站设计、网站制作和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户近1000家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

  1. Jvm内存结构 怎么理解Java虚拟机


>线程隔离区域说明:

1.1、程序计数器

  • 线程私有

  • 是一块内存空间

  • 唯一的一个在Java虚拟机规范中没有规定任何OOM情况的区域(不会OOM?)

1.2、Java虚拟机栈

  • 线程私有

  • 声明周期与线程相同

  • 在Java虚拟机规范中规定两种异常状况: 1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常; 2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM PS:每一个方法在执行的同时都会创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态链接、方法出口等信息,每一个方法从调用到完成,就对应着一个栈帧从入栈到出栈的过程

1.3、本地方法栈

  • 线程私有

  • 声明周期与线程相同

  • 在Java虚拟机规范中规定两种异常状况: 1、线程的栈深度大于虚拟机所允许,抛出StackOverflowError异常; 2、如果虚拟机栈可以动态扩展,当扩展到无法申请足够的内存,抛出OOM

PS:可以看出本地方法栈和Java虚拟机栈的特征基本一致。 区别是:Java虚拟机栈为执行Java方法服务,而本地方法栈为Native方法服务。

> 线程共享区域说明:

1.4、Java堆

  • 线程共享

  • 存放对象实例

  • 虚拟机内存中最大的一块

  • 逻辑连续,物理不需要连续

  • 存在OOM

  • 是Java垃圾回收主要的区域

1.5、方法区

  • 线程共享

  • 存储被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码

  • ≈永久代(Permanent Generation)本质不等价

  • 不需要连续内存

  • 存在垃圾回收,但是回收区域仅限于常量池和类型的卸载

  • 存在OOM

“怎么理解Java虚拟机”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


分享名称:怎么理解Java虚拟机
标题网址:http://bzwzjz.com/article/ihcpdc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 企业网站设计 重庆网站设计 专业网站设计 成都网站建设 温江网站设计 重庆网站制作 手机网站制作 成都网站制作 重庆网站建设 成都品牌网站建设 手机网站设计 成都企业网站设计 手机网站制作 自适应网站设计 成都网站建设 网站建设公司 盐亭网站设计 成都网站制作 成都网站设计 成都企业网站建设公司 网站制作 营销型网站建设