面试题: JVM的四大引用

JVM的四大引用

  • 强引用

    • 强引用时最普遍的引用。如果一个对象具有强引用,那垃圾回收器不会回收它。它是默认的引用类型,强引用的对象是可触及的,垃圾收集器就永远不会回收被引用的对象,它可能导致内存泄漏,可以直接访问目标对象。
  • 软引用

    • 只要被软引用关联的对象,系统将要发生内存溢出前,会把这些对象列进回收的范围之中进行二次回收,如果还没有足够的内存,才会抛出内存溢出异常。软引用通常用来实现内存敏感的缓存如高速缓存。
  • 弱引用

    • 弱引用也是用来描述那些非必需的对象,被弱引用关联的对象只能生存到下一次垃圾收集发生为止。只要是弱引用,发现即回收。但是垃圾回收的线程通常优先级很低,因此,并不一定很快的发现,再这种情况下,弱引用对象可以存在很长时间。
  • 虚引用

    • 它不能单独使用,也无法通过虚引用来获取被引用的对象,当试图通过虚引用的get()方法取得对象时,总是null。为一个对象设置虚引用关联的唯一目标在于跟踪垃圾回收过程。
原文地址:https://www.cnblogs.com/dalianpai/p/14237727.html