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