JAVA中的清理机制

整理下关于JAVA中的内存处理机制:(李刚老师的疯狂JAVA讲义中关于垃圾回收机制讲解的比较详细,在此自己做一个总结)

1、JAVA中的垃圾回收机制是对堆堆内存中的对象进行的,特点:

     (1)无法精确的控制垃圾回收运行的时间,这个完全由JAVA虚拟机根据系统内存问题而定,不过我们可以强制进行垃圾回收(System.gc()或者Runtime.getRuntime().gc()),但是这样做不是明智的

    (2)进行垃圾回收之前,会先调用finalize()方法,该方法主要是进行一些堆内存资源的管理工作,可能会使一部分未被引用的对象重新获得引用

2、JAVA对象的生命周期:(这三个状态由李刚老师提出,我根据自己的见解重新进行了命名)

                  存活(live)                 可复活(recovery)                  死亡(dead)

     存活状态:在被使用中

     可复活状态:对象暂时未被使用,但是随时会被调用使用

     死亡状态:不会再使用的,等待被回收的对象

3、关于JAVA中的几种引用类型

(1)强引用:很常见的一种引用方式,是我们经常使用的一种引用方式,

(2)软引用(SoftReference):当系统内存不足时,该种引用关联的对象很可能会被回收掉,这个引用常用语内存敏感的程序中

(3)弱引用(WeakReference):同软引用类似,但是该种引用关联的对象在JVM进行垃圾回收时总是会被回收的

(4)虚引用(PhantomReference):结合引用队列进行使用,主要用于跟踪对象

如果希望尽可能的减小程序在其生命周期中所占用的内存大小时,使用这些引用就很有用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值