(面试题)HashMap 和 Hashtable的区别

17 阅读1分钟
  • 线程安全:Hashtable是线程安全的,看源码可以看到Hashtable每个方法上都加了synchornized来进行同步。HashMap是线程不安全的,方法上没有进行同步措施,再jdk1.7版本hashmap会有死循环问题

  • 效率:Hashtable因为加了同步锁,所以执行效率要低于HashMap

  • null值:Hashtable不允许key和value为null,HashMap是允许的

  • 其他:底层还有很多不同,需要线程安全的话使用CurrentHashMap