6 ms·
But circular references don't leak in Java. You have to have a GC root (e.g. a static, or something in your runtime) somewhere pointing at the thing to actually
by billjings 2y ago
But circular references don't leak in Java. You have to have a GC root (e.g. a static, or something in your runtime) somewhere pointing at the thing to actually leak it.
There is one case where a "circular" reference can appear to cause a leak that I know of: WeakHashMap. But that's because the keys, which are indeed cleaned up at some point once the associated value is GC'd, are themselves strongly retained references.
- chopin 2y agoThreadLocal can be another problem. Tomcat kills and recreates threads for this reason. Edit: another one is swapping code by swapping class loaders. That can retain static references in the runtime class loader.