垃圾回收机制

垃圾回收机制

概述:

java中一个显著的特点就是垃圾回收机制,会将无用的对象自动回收,不会像c++程序员那样自己手动
管理内存,它使得java程序员再开发过程中不想需要担心内存问题,它可以有效的防止内存泄漏
他有许多垃圾回收的算法,但是其目的都是:发现无效对象,将无效对象回收,释放内存

标记清除法:

它是从根集合进行扫描,对存活的对象进行标记,标记完成后再扫描未被标记的对象,进行回收,回收的速度慢,容易出现大量的内存碎片

标记整理算法:

对需要回收的对象进行整理,包括有效的对象,不会产生内存碎片

复制算法:

将内存分为两个部分,每次只使用一个,当使用满了之后将有效的对象复制到另一个部分中,回收原来的
空间

分代收集算法:

主要是对以上三种方法就行自动选择
分为新生代,老年代,永久带

  • 新生代:存放最新产生的对象,新生代分为eden区、survivor0和survivor1三个区,按照8:1:1的比例,大部分对象都是放在第一个分区,当第一个满了之后将存活的对象放到第二个,清空第一个,第二个满了之后放入到第三个,清空第二个,若三个分区都满了则将对象放入到老年代,新生代触发的是MinorGc,
    老年代满了之后就会触发Full GC
  • 老年代:一般是新生代的两倍,一般存放的对象声明周期会很长
  • 永久代:存放静态文件,它对垃圾回收没有影响
    新生代使用的是复制算法,老年代使用的是标记清除和标记整理算法,jdk8之后废弃了永久代,使用了元空间就行存放,它直接存放在内存可自定义大小
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值