文章目录
-
-
- 1、Cas(比较并交换)
- 2、AQS(AbstractQueuedSynchronizer)=>抽象队列同步器
- 3、Volatile:
- 4、ReentrantLock
- 5、Synchronized
- 6、CountDownLatch=>倒计时器
- 7、CyclicBarrier=>循环栅栏
- 8、Semaphore=>参数代表同时访问的线程,允许多个线程同时访问
- 9、Executors(不建议使用)
- 10、ThreadPoolExecutor
- 11、ScheduledThreadPoolExecutor:
- 12、Exchanger(交换数据)
- 13、ThreadLocal
- 14、BlockingQueue(生产者消费者模型=》队列(先进先出))
- 15、Automic类
- 16、Unsafe
- 17、Future/FutureTask
- 18、Fork/Join(大化小,小归大,分而治之)
- 19、Disruptor(生产者消费者模型)
- 20、Hashmap/ConcurrentHashMap
-
- 20.1、说一下 HashMap 的实现原理?
- 20.2、HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现
- 20.3、HashMap的put方法的具体流程?
- 20.4、HashMap的get方法的具体流程?
- 20.5、HashMap的扩容操作是怎么实现的?
- 20.6、HashMap是怎么解决哈希冲突的?
- 20.7、能否使用任何类作为 Map 的 key?
- 20.8、为什么HashMap中String、Integer这样的包装类适合作为K?
- 20.9、如果使用Object作为HashMap的Key,应该怎么办呢?
- 20.10、HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?
- 20.11、HashMap 的长度为什么是2的幂次方
- 20.12、HashMap 与 HashTable 有什么区别?
- 20.13、如何决定使用 HashMap 还是TreeMap?
- 20.14、HashMap 和 ConcurrentHashMap 的区别
- 20.15、ConcurrentHashMap 和 Hashtable 的区别?
- 20.16、ConcurrentHashMap 底层具体实现知道吗?实现原理是什么?
- 21、ArrayList
-
- 21.1、快速失败机制 “Fail-Fast”
- 21.2、安全失败 Fail-Safe
- 21.3、Fail-Fast(快速失败)和Fail-Safe(安全失败)比较
- 21.4、说一下 ArrayList 的优缺点
- 21.5、如何实现数组和 List 之间的转换?
- 21.6、ArrayList 和 LinkedList 的区别是什么?
- 21.7、ArrayList 和 Vector 的区别是什么?
- 21.8、插入数据时,ArrayList、LinkedList、Vector谁速度较快?阐述 ArrayList、Vector、LinkedList 的存储性能和特性?
- 21.9、多线程场景下如何使用ArrayList?
- 22、CopyOnWriteArrayList
- 23、TreeMap
-