Java 集合框架知识全面回顾在 Java 集合框架中,数据结构和算法可以说在里面体现的淋淋尽致,这一点可以从我们之前对各个集合类的分析就可以看的出来,如动态数组、链表、红黑树、Set、Map、队列、栈、堆等,基本上只要出去面试,集合框架的话题一定不会少!下面我们就一起来看看各大数据结构的具体实现!panzhi2019年6月15日大约 23 分钟java集合框架
深入解析 CopyOnWriteArrayList 用法及实现原理CopyOnWriteArrayList 实际上是 ArrayList 一个线程安全的操作类!从它的名字可以看出,CopyOnWrite 是在写入的时候,不修改原内容,而是将原来的内容复制一份到新的数组,然后向新数组写完数据之后,再移动内存指针,将目标指向最新的位置。panzhi2019年6月14日大约 10 分钟java集合框架
深入解析 ConcurrentHashMap 用法及实现原理想必阅读过小编之前写的《HashMap 在多线程环境下操作可能会导致程序死循环》一文的朋友们一定知道,其中有一个解决办法就是使用 java 并发包下的 ConcurrentHashMap 类!今天通过这篇文章,我们就一起来聊聊 ConcurrentHashMap 这个类!panzhi2019年6月13日大约 15 分钟java集合框架
深入解析 PriorityQueue 用法及实现原理PriorityQueue 并没有直接实现 Queue接口,而是通过继承 AbstractQueue 类来实现 Queue 接口一些方法,在 Java 定义中,PriorityQueue 是一个基于优先级的无界优先队列。通俗的说,添加到 PriorityQueue 队列里面的元素都经过了排序处理,默认按照自然顺序,也可以通过 Comparator 接口进行自定义排序。panzhi2019年6月12日大约 11 分钟java集合框架
深入解析 ArrayDeque 用法及实现原理在介绍 ArrayDeque 类之前,可以从图中看出,ArrayDeque 实现了 Deque 接口,Deque 是啥呢,全称含义为 double ended queue,即双端队列。Deque 接口的实现类可以被当作 FIFO(队列)使用,也可以当作 LIFO(栈)来使用。panzhi2019年6月11日大约 17 分钟java集合框架
深入解析 Java Set 接口及其实现类关于 Set 接口,在实际开发中,其实很少用到,但是如果你出去面试,它可能依然是一个绕不开的话题。言归正传,废话咱们也不多说了,相信使用过 Set 集合类的朋友都知道,Set集合的特点主要有:元素不重复、存储无序的特点。panzhi2019年6月10日大约 15 分钟java集合框架
深入解析 Properties 用法及实现原理Java 中其实还有一个非常重要的类 Properties,它继承自 Hashtable,主要用于读取配置文件,最常见的比如作为 JDBC 数据源配置文件。panzhi2019年6月9日大约 9 分钟java集合框架
深入解析 Hashtable 用法及实现原理Hashtable 一个元老级的集合类,早在 JDK 1.0 就诞生了,而 HashMap 诞生于 JDK 1.2,在实现上,HashMap 吸收了很多 Hashtable 的思想,虽然二者的底层数据结构都是【数组+链表】结构,具有查询、插入、删除快的特点,但是二者又有很多的不同。本文主要从数据结构和算法层面,探讨 Hashtable 的实现。panzhi2019年6月8日大约 11 分钟java集合框架
深入解析 WeakHashMap 用法及实现原理在 Map 家族中,WeakHashMap是一个很特殊的成员,它的特殊之处在于 WeakHashMap 里的元素可能会被 GC 自动删除,即使程序员没有显示调用 remove 或者 clear 方法。换言之,当向 WeakHashMap 中添加元素的时候,再次遍历获取元素,可能发现它已经不见了。本文主要从数据结构和算法层面,探讨 WeakHashMap 的实现。panzhi2019年6月7日大约 10 分钟java集合框架
深入解析 IdentityHashMap 用法及实现原理应该有很多人不知道 IdentityHashMap 的存在,其中不乏工作很多年的 Java 开发者。IdentityHashMap 的数据结构很简单,底层实际就是一个 Object 数组,但是在存储上并没有使用**链表**来存储,而是将 K 和 V 都存放在 Object 数组上。本文主要从数据结构和算法层面,探讨 IdentityHashMap 的实现。panzhi2019年6月6日大约 7 分钟java集合框架