(1)HashMap继承自AbstractMap,而Hashtable继承自Directory
(2)HashMap是线程不安全的(HashMap在执行并发put时候,操作会引起死循环,是多线程put导致扩容时候会使得Entry形成环型链表,导致死循环),而Hashtable是线程安全的(HashMap给put等方法加了synchronized关键字)
加synchronized的缺点:
比如多线程都要插入数据,且两个数据key不同,因此要插入Entry数组的位置不同,由于加了synchronized关键字,所以一个线程执行后put方法会加锁知道该方法执行完才能执行另一个线程的put方法,效率很低
(3)Hashtable不允许null key和null value,但是HashMap允许