JAVA_JVM(二)

JVM(Java Virtual Machine)

1.说明

JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的

2.一图胜百文

在这里插入图片描述

3.类加载子系统

使用JVM类加载的双亲委派模型

4.JVM 内存

4.1线程共享区

方法区(JDK8 Metaaspace):存放类的结构信息
堆内存区(存储的是对象)可以分为年轻代(伊甸园区,幸存区1,幸存区2),老年代

4.2.线程私有区

Java方法栈:1.调用具体的方法.2.栈帧(先进先出原则):存储方法具体信息
本地方法栈:底层使用C/C++实现.
Java方法栈和本地方法栈之间可以互相调用
程序计数器:记录当前线程执行的位置

5.JVM执行引擎

5.1.解释器:解释执行字节码(解析一次执行一次)
5.2.JIT编译器:对重复执行的代码(使用频率高)(热点代码)编译后放入缓存中,
			 下次使用直接从缓存中取.
5.3.缓存:存放JIT编译器的数据

5.4.垃圾回收GC
5.4.1.年轻代触发GC

大部分new的对象都会存放在年轻代

当伊甸园区对象到一定程度时,会触发GC,GC回收后,伊甸园幸存的对象会被放入幸存区1,
当伊甸园区对象再次触发GC垃圾回收后,会将伊甸园和幸存1区幸存的对象放入幸存区2,清空幸存区1,
以此循环清理,每次垃圾回收后保持一个幸存区是空的,方便下次GC后,幸存的对象放入幸存区.

5.4.2.老年代触发GC

老年代会触发Full GC,耗时比较长.原因如下:
1.GC清理垃圾对象.2.对内存进行整理

6.操作系统

Windows, Linux,Mac…

感谢您看完这篇文章,JVM方面正在学习和摸索中,如有问题,欢迎指正和交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值