java强、软、弱、虚四种引用

来源:互联网 发布:嵌入式linux开发板 编辑:程序博客网 时间:2024/05/22 00:49

           在JDK 1.2以前的版本中,对象处于可触及(reachable)状态,程序才能使用它。对象的引用分为4种级别由高到低依次为:强引用、软引用、弱引用、虚引用。

    

1、强引用(StrongReference)

     简单来说就是使用强引用的对象,当内存不足的时候,宁愿出错,抛出 OutOfMemoryError的错误,垃圾回收器也不会回收它来解决内存不足的问题。
 
2、软引用(SoftReference)
     软引用对象,内存够,垃圾回收器就不回收,内存空间不够,则回收对象内存。但是只要垃圾回收器没有回收,那对象就会被系统一直引用。软引用可以实现高速缓存,但是
不能设置缓存大小。

    

3、弱引用(WeakReference)

     弱引用与软引用类似,只是内存不够时,垃圾回收器优先回收弱引用。
     

4、虚引用(PhantomReference)

     虚引用就是形同虚设的,没有生命周期,随时都能被垃圾回收器回收,主要用来跟踪对象被垃圾回收器回收的活动。

    以上四种引用,常用的是软引用(SoftReference),在Android没有LruCache来缓存数据之前。
当内存不够的时候,垃圾回收机制按优先级回收:虚引用——>软引用——>弱引用.
3 0
原创粉丝点击