参考答案
结论:二者均为哈希表实现,区别在线程安全、空值、API等方面。要点:1. 线程安全:Hashtable方法加synchronized,线程安全但慢;HashMap非线程安全,需外部同步或用ConcurrentHashMap;2. null:HashMap允许一个null键和多个null值,Hashtable不允许抛NPE;3. 继承:HashMap继承AbstractMap,Hashtable继承Dictionary(遗留类);4. 迭代:HashMap的fail-fast迭代器遇并发修改抛异常,Hashtable枚举非fail-fast;5. 性能:单线程下HashMap更优。示例:多线程应改用ConcurrentHashMap。