HashMap somehashMap
的生命周期比foo
长。因此,即使它完成了工作,我们将foo
放入Map中然后忘记从中删除,也不允许垃圾回收该对象。现在根据我链接中的答案的逻辑,我们实际上是将foo
的引用的副本传递给了put()
方法,这样放置foo
进入HashMap
不应该防止它被垃圾回收。请您帮助我理解这里发生了什么?我到底错过了什么? public void someMethod(){
Foo foo = new Foo();
somehashMap.put(fooKey,foo);
}
Foo
的生命周期与somehashMap
相同。 - Chris Dargis