Fork me on GitHub

Java的四种引用

四种引用

把对象的引用分为四种级别,更灵活控制对象的生命周期,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。


强引用(不会回收)

我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。

软引用(内存不足才会)

软引用可用来实现内存敏感的高速缓存。
软引用在实际中有重要的应用,例如浏览器的后退按钮。

弱引用(发现就会回收)

弱引用可以和一个引用队列(ReferenceQueue)联合使用

###虚引用(任何时候都可能被垃圾回收)