1.数据结构上:在JDK1.7版本中,ConcurrentHashMap的数据结构是由一个Segment数组和多个HashEntry组成 ;JDK1.8的实现已经摒弃了Segment的概念,而是直接用Node数组+链表+红黑树的数据结构来实现,并发控制使用Synchronized和CAS来操作,整个看起来就像是优化过且线程安全的HashMap.
2.JDK1.7用的是头插法,而JDK1.8是尾插法,那么他们为什么要这样做呢?当采用头插法时会容易出现逆序且环形链表死循环问题,从而导致CPU100%和数据丢是的问题