packagecom.skywang.java;importjava.lang.ref.WeakReference;public classWeakReferenceTest {public static voidmain(String[] args) { WeakReference ref= new WeakReference(newMyDate()); System.gc(); } } 运行结果: obj [Date: 1372142034360] is gc 结果说明:在JVM垃圾回收运行时,弱引用被终止. WeakReference...
另外值得注意的是,其实 SoftReference, WeakReference 以及 PhantomReference 的构造函数都可以接收一个 ReferenceQueue 对象。当 SoftReference 以及 WeakReference 被清空的同时,也就是 Java 垃圾回收器准备对它们所指向的对象进行回收时,调用对象的 finalize() 方法之前,它们自身会被加入到这个 ReferenceQueue 对象中,此时可...
WeakReference在它所指的对象被GC认定为只是弱引用可达的时候就会被放到ReferenceQueue中。这个发生在finalize()调用之前或者垃圾回收之前;理论上说所指向的对象甚至可以通过finalize()方法“复活”,但是WeakReference将会保持死亡状态。PhantomReference只有当对象从物理内存中移除的时候才会进入到ReferenceQueue,并且由于它的get ()...
public class WeakReferenceTest { public static void main(String[] args) { WeakReference ref = new WeakReference(new MyDate()); System.gc(); } } 运行结果: obj [Date: 1372142034360] is gc 结果说明:在JVM垃圾回收运行时,弱引用被终止. WeakReference ref = new WeakReference(new MyDate()); Syste...
本文将谈一下对SoftReference(软引用)、WeakReference(弱引用)和PhantomRefrence(虚引用)的理解,这三个类是对heap中java对象的应用,通过这个三个类可以和gc做简单的交互。 强引用: 除了上面提到的三个引用之外,还有一个引用,也就是最长用到的那就是强引用.例如: ...
对于WeakReference和PhantomReference来说他们引用的对象,如果gc root链不可达那么在gc的时候会被立即回收。SoftReference和WeakReference引用的对象可以通过引用的get方法获取到相应的对象,但是对于PhantomReference来说没法通过这类引用去获取被引用的对象。当这三类引用引用的对象被回收的时候,那么这三类引用对象自身会被放在...
我们知道java语言提供了4种引用类型:强引用、软引用(SoftReference)、弱引用(WeakReference)和幽灵引用(PhantomReference),与引用密切相关的,还有一个引用队列ReferenceQueue。引用和引用队列的关系,对于垃圾回收来说非常重要,学习垃圾回收机制,必须要先了解引用和引用队列的使用方法。本文主要参考网上的一些理论,同时配合自己的...
3.WeakReference<String>abcWeakRef= newWeakReference<String>(abc); //3 4.abc=null; //4 5.abcSoftRef.clear();//5 上面的代码中: 第一行在heap对中创建内容为“abc”的对象,并建立abc到该对象的强引用,该对象是强可及的。 第二行和第三行分别建立对heap中对象的软引用和弱引用,此时heap中的对象仍...
⑶弱引用(WeakReference) 弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
关于java中的强弱引用(WeakReference,SoftReference,PhantomReference) 前两天看db4o,看到关于db4o的对象缓存中的对象是weak reference(弱引用),这样对于用户查询出来的大量对象结果,db4o使用弱引用,这样当垃圾回收时可以自己判断并进行垃圾回收。对于weak reference不是很了解,查点资料,整理一下。