Java引⽤总结--StrongReference、
SoftReference、WeakReference、
PhantomReference
Java引⽤总结--StrongReference、SoftReference、WeakReference、
PhantomReference
1 Java引⽤介绍
Java从1.2版本开始引⼊了4种引⽤,这4种引⽤的级别由⾼到低依次为:
强引⽤ > 软引⽤ > 弱引⽤ > 虚引⽤
⑴强引⽤(StrongReference)
强引⽤是使⽤最普遍的引⽤。如果⼀个对象具有强引⽤,那垃圾回收器绝
不会回收它。当内存空间不⾜,Java虚拟机宁愿抛出OutOfMemoryError错
误,使程序异常终⽌,也不会靠随意回收具有强引⽤的对象来解决内存不⾜
的问题。
⑵软引⽤(SoftReference)
如果⼀个对象只具有软引⽤,则内存空间⾜够,垃圾回收器就不会回收
它;如果内存空间不⾜了,就会回收这些对象的内存。只要垃圾回收器没有
回收它,该对象就可以被程序使⽤。软引⽤可⽤来实现内存敏感的⾼速缓
存。
软引⽤可以和⼀个引⽤队列(ReferenceQueue)联合使⽤,如果软引⽤所
引⽤的对象被垃圾回收器回收,Java虚拟机就会把这个软引⽤加⼊到与之关
联的引⽤队列中。
⑶弱引⽤(WeakReference)
弱引⽤与软引⽤的区别在于:只具有弱引⽤的对象拥有更短暂的⽣命周
评论0
最新资源