JVM组成部分

前言

JVM(Java Virtual Machine的简称。意为Java虚拟机。)。指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。
JVM的组成部分主要包括5部分:
在这里插入图片描述

1.JVM内存划分

1.1堆

所有创建的对象信息都放在这个区域,堆也是JVM中最大的一部分。是线程共享的。
在这里插入图片描述
1.新生代:
新创建的对象会存放在新生代,经历了一定次数的GC(垃圾回收)之后,依然存活下来的数据,会移动至老年代(HotSpot的默认回收次数是15次)
2.老年代:
经历了一定次数还存活的对象以及大对象
3.新生代又分为3个部分:
Eden,ServivorFrom、ServivorTo三个区

4.为什么大对象直接存放到老年代?
答:因为大对象创建和消耗的时间比较多,性能比较低,如果放到新生代,可能需要频繁的创建和销毁对象,导致JVM运行效率降低。

5.为什么要进行堆分代?
答:分代的理由就是为了优化GC性能,如果没有分代,那么我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样会对堆的所有区域进行扫描。而我们的很多对象都是朝生暮死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先对新生代的区域进行回收,这样可以提高效率。

1.2Java虚拟机栈

Java虚拟机栈是线程私有
在这里插入图片描述
布局变量表:存放方法参数和局部变量(8大基本数据类型)
操作栈:每个方法会生成一个先进后出的操作栈
动态链接:指向运行时常量池方法的引用
方法返回地址:PC寄存器的地址

1.3本地方法栈

本地方法栈和JVM栈类似,只不过JVM栈是为字节码服务的,而本地方法栈是为本地方法服务的,本地方法栈是线程私有的

1.4程序计数器

记录线程执行的行号,线程私有

1.5方法区

1.JDK7时 叫做方法区,也叫永久代
方法区主要存储被虚拟机加载的类型信息、常量、静态变量。(字符串常量池移至堆中)

2.JDK8时 叫做元空间
废除永久代的概念,元空间存储在本地内存中,将JDK7中永久代剩余的内容(主要是类型信息)全部移至元空间中。

2.线程私有还是公有

1.线程私有:
本地方法栈,Java虚拟机栈,程序计数器
2.线程共有:
堆,方法区

3.JVM调优

JVM参数调优
(1)-Xmx10m 堆最大容量
(2)-Xms10m 堆最小容量的设置
(3)通常情况下可以将Xmx和Xms的大小设置相同,这样可以防止堆扩容造成抖动

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JVMJava Virtual Machine)由以下几个部分组成:堆、方法区、新生代和老年代。\[1\]堆是JVM内存划分的一部分,用于存放所有创建的对象信息,是JVM中最大的一部分,也是线程共享的。\[3\]方法区是JVM规范中的一部分,用于存放类的元数据信息,包括静态变量和常量池。在JDK8之前,Hotspot中的方法区实现是永久代(Perm),而在JDK8及以后,使用的是元空间(Metaspace)。\[2\]新生代是堆的一部分,用于存放新创建的对象。经过一定次数的垃圾回收后,依然存活的对象会被移动至老年代。新生代又分为Eden、SurvivorFrom和SurvivorTo三个区域。 #### 引用[.reference_title] - *1* *3* [JVM组成部分](https://blog.csdn.net/qq_46804966/article/details/118941020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [1.JVM四大重要组成部分与内存区域](https://blog.csdn.net/qq_52874975/article/details/127031968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值