jvm内存模型个人理解整理

1、jvm内存模型:
堆(对象,数组)、虚拟机栈(局部变量,出口)、本地方法栈、方法区(类信息,常量,静态变量)、程序计数器(指令)、直接内存、常量池

对象内存布局:
对象头(一部分存储对象自身运行时数据,一部分存储指针类型找到是哪个类的实例)、实例数据、对其填充

对象的定位访问(栈访问堆对象)
reference一种方式是访问堆中的句柄,通过句柄找到对应的对象实例数据,这种方式适合增删多的
reference一种方式是直接访问堆的具体对象,这种适合经常查询,但很少改变的对象

判断对象是否被引用
1、引用计数法(暂没使用),两个对象相互引用不好计数
2、可达分析法,从gc root出发,创建引用链。对象没有在引用链上的判定为死亡

引用类型:
强引用(new出来的对象,创建就不会回收)。弱引用。软引用。虚引用

在新生代中70%-90%的对象都回收

垃圾回收算法
1、标记清除算法,会产生碎片
2、复制算法。复制有引用的对象,再全部回收
3、标记整理算法,标记清除算法的升级版、先标记再回收、再整理碎片
4、分代回收:新生代使用复制算法(因为只有少量对象存活),老年代使用标记整理算法

类加载机制
加载-校验-准备-解析-初始化-使用-卸载

参考文章:https://blog.csdn.net/qq_41701956/article/details/81664921

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值