☰
Java基础:Java 四种引用类型
2026/11/4 17:35:07 网站建设 项目流程

四种引用类型

Java 中有强引用、软引用、弱引用和虚引用四种引用类型。

强引用

强引用是最普通的对象引用,只要强引用还存在,GC 就不会回收对象。最常见的例子是Object obj = new Object()。只要对象仍然被强引用指向,垃圾回收器就不会回收它;即使内存不足,也可能抛出OutOfMemoryError。

软引用

软引用通过SoftReference实现。内存充足时,软引用对象通常不会被回收;内存紧张时,垃圾回收器可能清理软引用对象,因此常用于内存敏感型缓存。不过它的回收时机由 JVM 决定,不能作为严格可靠的缓存机制。

弱引用

弱引用通过WeakReference实现。如果对象只剩弱引用,没有强引用或其他更强的引用指向它,那么下一次垃圾回收时就可能被回收,与当前内存是否充足没有直接关系。

ThreadLocalMap的 key 是弱引用,弱引用指向ThreadLocal对象,value 仍然是对业务对象的强引用,所以使用完ThreadLocal后仍要调用remove()。

虚引用

虚引用通过PhantomReference实现,不影响对象存活,也不能通过get()获取对象。它通常配合ReferenceQueue使用,在对象即将被回收时接收通知,用于资源清理和回收监控。

速记

  • 强引用:只要还在,就不回收。
  • 软引用:内存不足时可能回收。
  • 弱引用:下一次 GC 可能回收。
  • 虚引用:不能取对象,主要用于回收跟踪。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询