摘要:
目录: 学习准备 类核心属性、内部类、构造函数介绍 哈希冲突(哈希碰撞) put()方法源码分析 resize()方法源码分析 学习准备 在阅读Java8 HashMap前你需要掌握数组、链表、二叉树、哈希表等知识。 我这里来简单的介绍一下它们: 数组:是通过一组连续的存储单元来存储数据的一种结构, 阅读全文
摘要:
1、&:与运算符 二进制比较,都为1则为1,否则为0 0=非=false,1=是=true & 类比 &&,当&&的所有条件都满足是才为true,故推到出上述结果。 2、|:或运算符 二进制比较,只要有一个为1就是1,否则为0 与&类似,| 类比 ||。 3、~:非运算符 二进制结果倒置,为0则1, 阅读全文
摘要:
目录: HashMap结构 HashMap方法简述 HashMap结构 在Java7中我们可以更具HashMap的table属性及Entry内部类观察出,其底层是基于数组实现,并在发生Hash冲突的时候用链表解决,将相同hash值的key组层一个链表维护。 1 transient Entry<K,V 阅读全文
摘要:
目录: AQS整体介绍 AQS类图 AQS实现 AQS总结: AQS及其实现类已经学完了,今天我就来按照自己的理解简单的总结下AQS。 首先AQS全称为AbstractQueuedSynchronize,从含义上可以看出它是队列同步器,是用于构建锁或其它同步组件的基础框架。 AQS整体介绍: AQS 阅读全文
摘要:
目录: CopyOnWriteArrayList是什么 为什么要有CopyOnWriteArrayList 如何使用CopyOnWriteArrayList CopyOnWriteArrayList源码分析 CopyOnWriteArrayList是什么 CopyOnWriteArrayList是一 阅读全文
摘要:
目录: 什么是DelayQueue 如何使用DelayQueue 总结 什么是DelayQueue DelayQueue是一个支持延时获取元素的无界阻塞队列,队列使用PriorityQueue来实现。 队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素,只有在延 阅读全文
摘要:
目录: 什么是ArrayBlockingQueue 为什么要有ArrayBlockingQueue 如何使用ArrayBlockingQueue ArrayBlockingQueue源码分析 LinkedBlockingQueue源码分析 什么是ArrayBlockingQueue 首先在说明Arr 阅读全文
摘要:
目录: 什么是CyclicBarrier 为什么要有CyclicBarrier 如何使用CyclicBarrier CyclicBarrier源码解析 什么是CyclicBarrier CyclicBarrier是循环栅栏,它的作用就是会让所有线程都等待完成后才会继续下一步行动。 与CountDow 阅读全文
摘要:
目录: CountDownLatch是什么 为什么要有CountDownLatch CountDownLatch源码分析 CountDownLatch是什么 CountDownLatch是一种闭锁,也叫倒数计数器,它可以等待多个线程执行完毕后再执行某一件事情。 比如你app的首页要加载很多个模块,而 阅读全文
摘要:
目录: Semaphore简介 内部类(Sync、NonfairSync、FairSync) 属性及构造器 其它方法 Semaphore简介 Semaphore是信号量,它是synchronized的加强版,作用是控制线程的并发数量。就这一点而言,单纯的synchronized关键字是实现不了的。 阅读全文