HashMap, ConcurrentHashMap和Collections.synchronizedMap(HashMap)有什么区别?
HashMap就是一个正常的Dictionary,不是线程安全的;
ConcurrentHashMap是线程安全的,它是通过将Map中的entry再分成segment,不同的segement使用不同的锁,来实现多线程安全快速访问的。但是如果不同的线程来访问同一个segment中的entry的话,还是要等上一个线程访问完成,才能继续;
Collections.synchronizedMap(HashMap)是通过将一个包装类,将HashMap的所有方法都synchronized住。