JVM内存分配算法

1.GC算法     2.G1算法

 

GC算法(keywords ,可达性分析,GCRoot向下搜索)
使用有向图将引用类型标记出来,使用GCRoot当做根节点,当GCRoot有指向的时候说明有引用(可达性分析)
销毁调用 finalize->放入F-Queue (只有一次)

<1>标记清除算法
在每一个大块空间当没有引用的时候进行删除,容易造成内存小碎片.
<2>复制算法
Edeson:Survive:Survive=8:1:1
创建一半空间供于使用,剩下一半空间供于清除后复制到另外一边使用(新生代)
<3>标记整理算法
清除的时候向一端移动清除 (老年代)

对象分配算法
<1>大对象进入老年代
<2>长期的对象进入老年代
<3>时间过长达到进入老年代

Tip:动态分配空间担保(新生代缺少的动态分配空间将由老年代进行分配空间担保)

回收的标准:
<1>给对象赋予了空值.
<2>给对象赋予了新值,重新分配了空间.

内存泄漏的情况
<1>在堆中申请的空间未被释放.(可解决)
<2>对象不使用了但仍然在内存中保留着.

G1内存回收方法???

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值