首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java新手问题

java新手问题
EN

Stack Overflow用户
提问于 2009-12-02 23:08:24
回答 5查看 174关注 0票数 1

如果我有这样的东西

代码语言:javascript
复制
Map<String, Foo> foos;
...

Foo f = foos.get("key1");
foos.removeAll();

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-02 23:12:18

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

票数 11
EN

Stack Overflow用户

发布于 2009-12-02 23:11:29

是的,你是。您刚刚清除了映射,但是局部变量f仍然持有对Foo的有效引用,并且您仍然可以使用它。

票数 6
EN

Stack Overflow用户

发布于 2009-12-02 23:12:49

请注意,String (注意大写S)是表示字符串的Java类的名称。但是,是的,是的,你是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1833486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档