假设有一个代码
actionService.processAction(new HelloWorldAction("Hello world", helloWorldRepository))
其中 helloWorldRepository
是 Spring bean。
垃圾收集器是否会在某个时候清理该 HelloWorldAction
对象,或者因为该对象引用 helloWorldRepository
它将永远存在于 JVM 中,如果我愿意,最好使用 WeakReference为了避免这种情况?
谢谢。
最佳答案
短生命周期对象拥有对长生命周期对象的引用。这不会造成任何问题:当短期对象不再可访问时,可以对其进行垃圾收集。如果没有任何东西引用它,它很快就会变得无法访问。
如果长生命周期对象保留对短生命周期对象的引用,就会出现问题。那么短命对象就不会被GC。
关于java - 以 spring bean 作为属性的垃圾收集清理对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972614/