引用
引用
一个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