一个类在jvm中运行的过程

1、特性

jvm帮助java语言可以实现跨平台

2、jvm结构图

(线程)栈:包含局部变量表、数字操作栈、动态链接、方法出口
(对象)堆:堆中存储对象
本地方法栈:java语言调用一些本地的C++代码
方法区(原空间):加载一些常量、静态变量、类信息
程序计数器:字节码文件中执行到某一句指令所对应的行号(并发执行过程相互切换后,继续执行的依据)
在这里插入图片描述

3、堆中的对象及其gc

在这里插入图片描述

堆中分区:年起代、老年代
年轻代:Eden区、Survivor区(s0、s1)
Eden区:所有新进来的对象先在这里,若满了就会进行major gc,回收无用的对象,然后将剩下的放入s0区,若第二次Eden满了,继续进行major gc,判断Eden与Survivor中非空的对象是否可以回收,然后将两部分不能回收的放入s1区
Survivor区:若对象头中的次数达到15(一般为15),就会放入老年区,说白了就是经过15次major gc后依然存在的对象移入老年区
老年代:当major jc 达到15次,这个对象还在时,就将其加入老年区

major gc:当我们堆中Eden满的时候,进行major gc,将其中的对象找寻其根节点(没有引用其他对象的对象),看是否回收,若满足回收条件,就释放
full gc:当老年区满了,就会进行full gc ,看是否可以回收
stop the word:full gc过程中,进入这个状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值