java新手问题

Omu*_*Omu 1 java

如果我有这样的事情

Map<String, Foo> foos;
...

Foo f = foos.get("key1");
foos.removeAll();
Run Code Online (Sandbox Code Playgroud)

我还能做吗? String s = f.getSomeProperty();

MBO*_*MBO 11

foos仅包含对象的引用,而不是完整对象.如果您从中获取了某些内容foos,则可以引用该对象并进行修改.如果从中删除所有元素foos,则它不再包含任何引用,并且只有在没有对该对象的其他引用时才能对这些对象进行垃圾回收.


And*_*s_D 6

是的,你是.你刚刚清除了地图,但是局部变量f仍然保留了Foo对它的有效引用,你仍然可以使用它.