浅析Java引用:强引用 软引用 弱引用 虚引用

1.强引用(Strong Reference):强引用是指代码之中普遍存在的,如:

Object obj = new Object();

只要强引用还存在,就永远不会被垃圾回收器回收。

2.软引用(Soft Reference):如果一个对象是软引用,在内存空间充足的情况下不会被回收,但是如果内存不够,就会被垃圾回收器回收。

String str = new String("hello");//强引用
SoftReference strRef = new SoftReference(str);//软引用

软引用可以用来实现高速缓存(如浏览器缓存)

3.弱引用(Weak Reference): 当垃圾回收器要回收时,弱引用对象一定会被回收。

String str = new String("hello");
WeakReference strRef = new WeakReference(str);

如果这个对象是偶尔的使用,并且希望在使用时随时就能获取到,但又不想影响此对象的垃圾收集,那么你应该用 Weak Reference来记住此对象。

4.虚引用(Phantom Reference): 虚引用随时随地有可能被回收, 虚引用一般都是要跟ReferenceQueue一起使用,当虚引用对象被回收的时候会被放入引用队列中

你可能感兴趣的:(java)