理解静态和弱参考之间的关系

时间:2014-03-08 17:35:27

标签: java android

我正在经历this tutorial,我决定从这行代码中删除静态:

private static Map map;

代码没有给出任何错误..但是弱引用没有从hashmap中删除。你能告诉我为什么地图必须是静态的,以便弱参考工作吗?

2 个答案:

答案 0 :(得分:1)

静态意味着该类的每个实例只共享该变量的一个实例。删除静态意味着周围有更多的映射(每个类的一个实例),并且这些实例不会有相同的数据。

弱引用完全不同。它们是保持参考的方法,但如果没有其他人需要,仍然可以将变量收集起来。这两个概念彼此无关。

答案 1 :(得分:0)

如果您只是删除

中的static
private static Map map; 

您的代码无法编译,因为non-static variable cannot be referenced from a static context,这是本教程中的main方法。