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 : 限制元空间大小上限,防止异常占用过多物理内存

相关内容

热门资讯

氨安装系统保压,氨安装系统保压... 氨安装系统保压的重要性与实施方法氨制冷系统在现代工业和商业制冷领域应用广泛,其高效、环保的特点使其成...
北斗系统安装后续,北斗系统安装... 北斗系统安装进展与未来展望随着我国北斗卫星导航系统的不断完善和普及,北斗系统的安装和应用已经深入到各...
把手机系统安装在卡里,如何将手... 如何将手机系统安装在SD卡里?随着智能手机的普及,用户对手机存储空间的需求越来越大。为了提高手机的存...
保山智能音响系统安装,保山智能... 保山智能音响系统安装——打造家庭影院新体验一、选择合适的智能音响系统在安装智能音响系统之前,首先需要...
安装系统专业版10 Windows 10 专业版系统安装教程一、准备工作在开始安装 Windows 10 专业版系统之前...
安卓系统怎么安装zip,安卓系... 安卓系统安装zip文件全攻略随着智能手机的普及,越来越多的用户开始接触和使用安卓系统。在下载应用或游...
报警系统安装验收规范 报警系统安装验收规范随着社会的发展和科技的进步,报警系统在公共安全、家庭安全等领域扮演着越来越重要的...
安卓系统安装会唱歌,安卓系统安... 安卓系统安装会唱歌应用,让你的手机也能唱歌跳舞随着智能手机的普及,安卓系统因其开放性和丰富的应用生态...
安装下载gps定位系统,gps... GPS定位系统安装与下载指南一、GPS定位系统简介GPS定位系统,全称为全球定位系统(Global ...
清风u盘安装系统,轻松实现电脑... 清风U盘安装系统教程:轻松实现电脑系统重装一、准备工具与材料在开始安装系统之前,我们需要准备以下工具...
安装在移动盘的系统,如何在移动... 如何在移动硬盘上安装操作系统随着移动硬盘存储能力的提升,越来越多的用户选择将操作系统安装在移动硬盘上...
安卓系统安装cad,安卓系统上... 安卓系统上安装CAD软件的详细教程随着移动办公的普及,越来越多的专业人士开始使用安卓手机进行工作。C...
北京监控系统安装维修,保障安全... 北京监控系统安装维修:保障安全,提升效率随着社会经济的发展,人们对安全防范的需求日益增长。监控系统作...
安装影子系统电脑蓝屏,安装影子... 安装影子系统后电脑蓝屏的解决方法及原因分析影子系统作为一种强大的系统保护软件,能够在一定程度上隔离操...
安装系统找不到本地介质,安装系... 安装系统时找不到本地介质的原因及解决方法在电脑使用过程中,我们可能会遇到重装系统的情况。然而,在安装...
庆阳全景系统门窗安装,庆阳全景... 庆阳全景系统门窗安装,打造现代家居新风尚一、庆阳全景系统门窗的特点庆阳全景系统门窗采用高强度的铝合金...
帮助安装电脑系统,轻松掌握系统... 电脑系统安装教程:轻松掌握系统安装方法一、准备工作在开始安装电脑系统之前,我们需要做好以下准备工作:...
奥迪安卓系统安装,轻松升级车载... 奥迪安卓系统安装指南:轻松升级车载娱乐体验一、了解奥迪安卓系统奥迪安卓系统是基于Android开源平...
安卓安装ppc系统,安卓系统安... 安卓系统安装到PPC设备上的详细教程一、准备工作在开始安装安卓系统之前,您需要做好以下准备工作: ...
报表系统安装包,轻松实现数据可... 全面解析报表系统安装包:轻松实现数据可视化与报表定制随着大数据时代的到来,数据已经成为企业决策的重要...