JAVA中的四种引用类型

JAVA中的四种引用类型

    • 1、强引用类型
    • 2、软引用类型
    • 3、弱引用类型
    • 4、虚引用类型

1、强引用类型

  • 在Java中最常见的就是强引用类型。即 把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被引用变量引用的时候,它就处于可达状态,它是不能被垃圾回收机制回收的。即使 该对象以后永远都不会被用到的话,JVM也不会回收它的。

注:方法内的对象(类似Object o = new Object())被引用变量引用的时候,这个方法结束了,强引用也就不存在了。判断一个引用是否是强引用是JVM的引用机制说了算。new 只是内存分配 跟强不强引用没啥关系。

2、软引用类型

  • 软引用需要用 SoftReference 类来实现,对于只有软引用的对象来说,当系统内存足够时它不会被回收,当系统内存空间不足时它会被回收。软引用通常用在对内存敏感的程序中。

3、弱引用类型

  • 弱引用需要用 WeakReference 类来实现,它比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管 JVM 的内存空间是否足够,总会回收该对象占用的内存。

4、虚引用类型

  • 虚引用需要 PhantomReference 类来实现,它不能单独使用,必须和引用队列联合使用。虚引用的主要作用是跟踪对象被垃圾回收的状态。

你可能感兴趣的:(java)