Java对象的强、软、弱和虚引用

来源:互联网 发布:怎么淘宝放单子 编辑:程序博客网 时间:2024/06/02 05:29
1)强引用
     如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会考随意回收具有强引用的对象来解决内存不足的问题。
2)软引用
     如果一个对象具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的告高速存。
3)弱引用
    弱引用比软引用拥有更短的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一单发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只有弱引用的对象。
4)虚引用
    虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象呗垃圾回收器回收的活动。
阅读全文
0 0
原创粉丝点击