ConcurrentHashMap(1.8)HashTable 是早期的线程安全的哈希表, 但是锁的范围太大了, 其 put, get 方法都有 synchronized 关键字修饰, 锁的范围是 hashtable 对象, 并发度太低;JDK1.7 的 ConcurrentHashMap ( 以下简称为 CHM ), 锁的范围是一个段, 段的数量可以在构造的时候指定, 又称并发级别;JDK1.7
ArrayList(JDK8)ArrayList有四个内部类,成员内部类Itr,成员内部类ListItr,静态内部类SubList,ArrayListSpliterator(暂时用不到)Itr是Iterator的实现类,支持正向遍历,ArrayList的iterator方法返回一个Itr对象ListItr是ListIterator的实现类,支持双向遍历,ArrayList的listIterator
如果对文章中提到的与 HashMap 相关的部分有任何疑问, 请移步HashMap源码详解简介底层是一个 Segment[] 数组, 每个 Segment对象 内部又有一个 Entry[ ] 数组, 一个 Entry[] 数组就相当于一个HashMapEntry[ ]采用拉链法解决冲突, 但是没有红黑树, 红黑树是1.8才引入的;一个 Segment对象就是一个段; 当往容器中添加元素调用 put
本文无废话, 全干货, 由 hashCode 方法开始讲起, 带你完全重新认识 hashCode 方法, 并囊括 HashMap 所有可能的八股文知识, 附带源码详细解读; 然后将会讲解阿里面试问题, 进行知识提炼与提升, 希望大家都能认真看完;hashCodeObject 的 hashCode 方法, JDK1.8 的默认实现是通过线程状态和移位异或的算法计算出来的, 并不是内存地址; 内存地址
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号