gc — Java 垃圾回收机制

近期在学习Java垃圾回收机制,有些总结与心得记录下来:

当对象彻底失去引用时,垃圾回收机制会回收其占用的内存

 

只有当程序认为需要更多的额外内存时,垃圾回收机制才会进行垃圾回收

特点:

1.      只回收堆内存中的对象,不回收任何物理资源(数据库链接,网络IO等)

2.      程序无法精确控制垃圾回收的运行

3.      在垃圾回收机制回收之前,会调用它的finalize()方法,可能使该对象重新得到引用而不被回收


状态的转化:

强制垃圾回收:

         前面有提到“程序是无法精确控制Java回收的时机”,强制垃圾回收只是提醒系统进行垃圾回收,具体时间无法确定。

         下面提供两种方法:

         System.gc()

         Runtime.getRuntime().gc()

 

对象的各种引用方式

1. 强引用  StrongReference

    l  时最常使用的一种引用方式:如对象,数组的创建;

    l  当一个对象被一个及以上的引用变量引用时,不会被垃圾回收;

 

2. 软引用  SoftReference

    l  通常用于对内存敏感的程序中

    l  内存充足时不会被回收;内存不足时可能被回收

 

3. 弱引用  WeakReference

    l  与软引用类似,但比其级别更低

    l  不管内存是否足够,都回收该对象占用的内存;但回收时机取决于

   回收机制运行时才被回收

        

4. 虚引用  PhantomReference

    l  虚引用不能单独使用,必须和引用队列联合使用

    l  虚引用主要用于跟踪对象被垃圾回收的状态



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值