我正在经历this tutorial,我决定从这行代码中删除静态:
private static Map map;
代码没有给出任何错误..但是弱引用没有从hashmap中删除。你能告诉我为什么地图必须是静态的,以便弱参考工作吗?
答案 0 :(得分:1)
静态意味着该类的每个实例只共享该变量的一个实例。删除静态意味着周围有更多的映射(每个类的一个实例),并且这些实例不会有相同的数据。
弱引用完全不同。它们是保持参考的方法,但如果没有其他人需要,仍然可以将变量收集起来。这两个概念彼此无关。
答案 1 :(得分:0)
如果您只是删除
中的static
private static Map map;
您的代码无法编译,因为non-static variable cannot be referenced from a static context
,这是本教程中的main
方法。