2.JVM常识之 运行时数据区
创始人
2024-06-01 12:44:53
0

1.JVM核心组成

在这里插入图片描述

2.JVM 运行时数据区(jdk8)

程序计数器:线程私有,当前线程所执行字节码的行号指示器
jvm栈:线程私有,Java 虚拟机栈为 JVM 执行 Java 方法服务
本地方法栈:线程私有,本地方法栈则为 JVM 使用到的 Native 方法服务
:线程共享, 主要存放对象实例以及数组
方法区(元空间): 线程共享, 存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码

2.1程序计数器
每个线程都有一个独立的程序计数器,为了确保线程切换后(上下文切换)能恢复到正确的执行位置。指向下一个将要执行的指令代码。如果线程执行 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果执行的是 Native 方法,计数器值为Undefined。不会出现OOM问题。

2.2jvm栈
-Xss 设置栈大小。一般是kb级别 256k
每个方法在执行时都会创建一个栈帧。栈帧中存储了局部变量表、操作数栈、动态连接和方法出口等信息。每个方法从调用到运行结束的过程,就对应着一个栈帧在栈中压栈到出栈的过程。(栈FILO)
局部变量表中存储了基本数据类型(boolean、byte、char、short、int、float、long、double)的局部变量(包括参数)、和对象的引用地址(String、数组、对象等),但是不存储对象的内容。局部变量表所需的内存空间在编译期间完成分配,在方法运行期间不会改变局部变量表的大小。
操作数栈的元素可以是任意的Java数据类型。可以理解为栈帧中用于计算的临时数据存储区。

StackOverflowError:栈溢出错误。一个线程在计算时所需要用到栈大小 > 配置允许最大的栈大小。例如方法递归不给出口。
OutOfMemoryError:内存不足

2.3本地方法栈
native方法调用信息,由C 或者 C++实现的接口

2.4堆
堆是Java虚拟机所管理的内存中最大的一块存储区域。堆内存被所有线程共享。主要存放使用new关键字创建的对象(对象实例等)。所有对象实例以及数组都要在堆上分配。垃圾收集器就是根据GC算法,收集堆上对象所占用的内存空间(收集的是对象占用的空间而不是对象本身)。
在这里插入图片描述
在这里插入图片描述
Java堆分为年轻代(Young Generation)老年代(Old Generation)默认比为1:2;
年轻代又分为
伊甸园(Eden)和幸存区(Survivor区)
;幸存区又分为From Survivor空间和 To Survivor空间。 8:1:1
年轻代存储“新生对象”,我们新创建的对象存储在年轻代中。当年轻内存占满后,会触发Minor GC(young GC),清理年轻代内存空间。
老年代存储长期存活的对象和大对象。年轻代中存储的对象,经过多次GC后仍然存活的对象会移动到老年代中进行存储。老年代空间占满后,会触发Full GC。
注:Full GC是清理整个堆空间,包括年轻代和老年代还有元空间(很难清理多少垃圾)。如果Full GC之后,堆中仍然无法存储对象,就会抛出OutOfMemoryError异常。

2.5 方法区(Method Area)
所有线程共享的区间,用于存储已被虚拟机加载的类的元信息常量静态变量。即时编译器编译后的代码。静态变量+常量+类元信息(版本、方法、字段等)+运行时常量池存在方法区中。
注:
JDK1.8 使用元空间 MetaSpace 替代方法区,元空间并不在 JVM中,而是使用本地内存。元空间两个参数:

 MetaSpaceSize:初始化元空间大小,控制发生GC阈值MaxMetaspaceSize : 限制元空间大小上限,防止异常占用过多物理内存

相关内容

热门资讯

雨林木风系统怎么用-探索神秘酷... 嘿,亲爱的数字探险家们,今天咱们聊聊那个神秘又酷炫的“雨林木风系统”!这玩意儿,听起来就像是电影《侏...
朝阳医院电话预约体验:过程曲折... 说到朝阳医院的电话预约,我这心里可真是五味杂陈啊!每次想要预约个专家号,那电话打得我手指都快断了,听...
rtk测量仪器工作原理-RTK... 大家好呀!今天我要带大家一起走进一个超级炫酷的世界——RTK测量仪器的工作原理!这可不是一般的仪器哦...
linux桌面环境比较-眼花缭... 大家好!今天咱们就来聊聊那些让人眼花缭乱的Linux桌面环境。我得说,选择一个合适的桌面环境,简直就...
老年人肺气肿感染-年迈肺气肿患... 在这个世界上,每个生命都在用自己的方式呼吸着。但对于我,一个年迈的肺气肿患者而言,每一次呼吸都像是在...
克罗恩打类克能治愈吗-克罗恩病... 大家好,我是一个深受克罗恩病折磨的患者。每当肚子里的痛楚如潮水般涌来,我都会问自己,这种痛苦真的有尽...
帝国cms72商城模板-帝国 ... 大家好,我是小杰,一个对网页设计充满激情的小伙子。今天,我要和大家聊聊我最近疯狂迷恋的帝国CMS72...
bootps-Bootps:连... 哎呀,说到Bootps,这可不是什么高大上的技术术语,它其实是网络启动协议的一种,但今天我不是来给你...
微软正版下载:支持创新,选择正... 嘿,大家好!今天咱们聊聊“微软正版下载”这个话题。说到微软,你可能立马想到那些高大上的软件,像是Of...
mapinfo 加载在线地图-... 哎呀,今天说说我在用MapInfo加载在线地图时的心情吧,那真是一场接着一场的惊喜和失望交替上演的戏...
海尔阿里四代电视:智能终端、超... 嘿,朋友们,你们有没有想过,家里那台老电视还能有多大的变化?让我告诉你们,海尔阿里四代电视,简直是家...
breeze什么牌子-Bree... 哎呀,说到Breeze这个牌子,我的心就忍不住跳跃起来!这可不是什么普通的小品牌,它简直就是夏日的代...
ubuntu 1404关闭3d... 哎呀,说到Ubuntu14.04关闭3D这个事儿,我的心啊,就像是被冰冷的代码给冻住了。你知道的,U...
龙腾数据恢复注册码-电脑崩溃重... 哎呀,天哪!我的电脑突然崩溃了,所有的重要文件都打不开了!我现在就像热锅上的蚂蚁,急得团团转。听说有...
克罗恩治疗方法-与克罗恩病斗争... 大家好,我是一个与克罗恩病斗争多年的患者。今天,我想和大家聊聊克罗恩病的治疗方法,虽然这个话题听起来...
迅龙硬盘数据恢复:拯救误删文件... 哎呀,说到这个迅龙硬盘数据恢复,我的心就扑通扑通跳个不停!你知道吗,有天我一不小心,把硬盘里的那些宝...
手机绿云如何夜审-手机里的绿云... 手机成了我们形影不离的伙伴,但你知道吗?当夜深人静,月色如水,手机里的绿云,就像夜行的幽灵,悄无声息...
朝阳医院西院体检中心:体验温馨... 嘿,朋友们,今天我要给你们讲讲我在朝阳医院西院体检中心的那点小确幸。你知道的,体检这事儿,说起来总是...
win10百度贴吧-Win10... 哎呀,说到在Win10上用百度贴吧,我这心情就五味杂陈啊!首先得说,Win10系统确实挺酷炫的,界面...
libeay32.dll修复工... 哎呀,说到这个libeay32.dll文件,真是让人头疼得不行!你是不是也遇到过打开某个软件或者游戏...