我正在阅读的代码Hashtable
并且很困惑并且有一些问题。我这样编码:
Hashtable table = new Hashtable();
table.put(table, 1);
int code = table.hashCode();
我有两个问题:
当我像第三行代码一样调用
hashCode
方法时,为什么不是无限循环?我认为这是一个无限循环。调试这段代码的时候,发现这段代码
new Hashtable()
会导致put
方法的调用,为什么?
根据我正在阅读的 OpenJDK 源代码,有一个专门编写的保护程序来防止 Hashtable 包含自身的情况。
我put
在构造函数中看不到任何引用。您有可以在答案中发布的痕迹吗?