Java回收机制

  1. 什么是Java回收机制?
    回收机制也叫做GC
  2. 为什么要有垃圾回收机制?
    在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象 的内存时,该内存便成为垃圾。 垃圾回收能自动释放内存空间,减轻编程的负担,JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对 象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾回收也可以清除内存记录碎片。由于创建对象和垃圾回收器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到堆的一端,JVM将整理出的内存分配给新的对象。
  3. GC如何发现垃圾
    目前Java的在使用的回收机制是根搜索算法,(就是当堆里的对象没有被方法区,本地方法栈和虚拟机栈引用时),GC会判断这个对象没有被引用,这时候就符合GC回收的标准
  4. GC什么时候来回收垃圾
    GC的回收的时间是不确定的
  5. GC怎么清理垃圾
    目前GC使用分代手机算法,总共分为3个代,新生代、老年代和永久代(可以理解为人的寿命),首先在堆里的每个新的对象都会被放入新生代的伊甸园、这里也是GC最常来的区域,每次来判断新对象是否被其他区域引用,当伊甸园里的对象好几次没有被回收时,就会放入后面的生存区,而GC会相对对后面代的对象(老油条)少去几次,从而达到减少性能消耗的作用
    在这里插入图片描述
  6. 如何查看堆中的对象
    可以使用JDK中自带的工具查看
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值