引用

引用

一个reference类型的数据存储的是另一个对象内存地址,那么我们就称这个reference是这个对象的引用。

强引用

通常我们的引用都是强引用。例如:String strongReference = new String(),这个strongReference就是个强引用,只要这个强引用还存在,还指向这个对象,那么这个对象就不会被GC回收。

软引用

描述有用,但是非必须的对象。在内存将要溢出时,会对所有的软引用做二次回收,如果依旧没有足够内存,抛出OOM。


SoftReference<String> softR = new SoftReference<String>(new String("soft Reference"));

弱引用

更弱的引用,在下一次GC时被回收掉。


 WeakReference<String> weakReference = new WeakReference(new String("Weak reference"));

虚引用

对被指向的对象不构成任何影响,也无法通过虚引用获取对象。只是在虚引用指向的对象被回收时,系统会收到一个通知。PhantomReference

原文地址:https://www.cnblogs.com/liminghuang/p/8733503.html