Java中的强引用与弱引用

📅 2026/8/16 6:41:20
Java中的强引用与弱引用
在 Java 中强引用、弱引用属于 JVM 垃圾回收GC中的概念用来描述一个对象被引用的强弱程度决定GC 是否可以回收它。1.强引用我们平时写的代码99%都是强引用例如User user new User();这里通过new创建一个User对象并通过变量user指向引用这个User对象这种方式就叫做强引用GC什么时候会回收这个对象呢当user引用变为null时User对象失去了强引用的变量GC就会回收User对象2.弱引用和强引用相对应弱引用即使对象还有引用指向只要发生 GC就会被回收。Java提供了WeakReference定义弱引用对象例如WeakReferenceUser weak new WeakReference(new User());这个例子中weak就是对User对象的弱引用。在GC回收时判断User没有强引用就会直接回收导致weaknull那如果同时存在强引用和弱引用呢如User user new User(); WeakReferenceUser weak new WeakReference(user);同时存在user和weak两个强引用和弱引用GC在垃圾回收时会基于强引用进行回收判断只要存在强引用就不会回收对象。