Java引用

2019-02-13  本文已影响0人  Weechan_

强引用

创建一个对象并把这个对象赋给一个引用变量。

Object object =new Object();
String str ="hello"

强引用有引用变量指向时永远不会被垃圾回收,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。

软引用

如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;

MyObject aRef = new  MyObject();  
SoftReference aSoftRef=new SoftReference(aRef);  

此后,这个aRef对象成为了软引用对象。如果垃圾收集线程进行内存垃圾收集,并不会因为有一个SoftReference对该对象的引用而始终保留该对象。

弱引用

弱引用也是用来描述非必需对象的,当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。JAVA用WeakReference实现弱引用

虚引用

虚引用也称为幻影引用:一个对象是都有虚引用的存在都不会对生存时间都构成影响,也无法通过虚引用来获取对一个对象的真实引用。
唯一的用处:能在对象被GC时收到系统通知,JAVA中用PhantomReference来实现虚引用。

image.png

-- 本文抄自互联网

上一篇下一篇

猜你喜欢

热点阅读