这里主要收集了一些IDEA上常用的插件. 因为IDEA暂时还不能通过 Online Account 的方式来同步配置, 所以在这里记录下了.
Java常用开源库和工具
日常工程开发过程中, 熟悉高效地利用开源库和工具, 能大大提升我们的工作效率, 所以本文主要列举了Java中常用的一些开源库和开源工具, 并进行了简单介绍, 希望能让大家有一个更全面的了解.
Java中数组的拷贝方式
之前学习了List架构, 在List集合框架下大量使用了Arrays.copyOf和System.arraycopy()来做数组拷贝. 今天就来学习下Java中数组拷贝的3中方式:循环拷贝,克隆方法拷贝,System.arraycopy拷贝. 文章主要分为下面几个部分:
- 3种拷贝方式的介绍
- 3种拷贝方式的效率比较
- System.arraycopy和Arrays.copyOf()的区别
Java集合系列[7]-List总结(使用场景和性能分析)
概述
之前,我们学完了List的基本内容了(ArrayList/LinkedList/Vector/Stack). 现在, 我们回过头来总结一下List.主要分为下面几个部分:
- List概括
- List的初始容量的增长方式(基于JDK1.8)
- List的使用场景
Java集合系列[6]-Stack分析与源码解析
概述
上次学习了Vector,今天学习Stack,这也是Collecton集合下最后解析的一个了.Stack比较简单,它直接继承自Vector. 学习内容分为下面几个部分:
- Stack简介
- 数据结构分析
- 源码解析(基于JDK1.8)
Java集合系列[5]-Vector分析与源码解析
概述
之前已经学习过了ArrayList和LinkedList,也学习过了fail-fast机制。今天我们接着学习Collection框架中的另一个重要成员Vector。大概还是分为下面几个部分:
- Vector简介
- Vector的数据结构
- Vector源码解析(基于JDK1.8)
- Vector的遍历方式
Java集合系列[4]-fail-fast机制解析
概括
前面我们学习过了ArrayList 和 LinkedList,它们的迭代器都是快速失败的,也就是”fail-fast”机制。本文将以ArrayList为基础,对迭代器的”fail-fast”机制进行系统地学习。内容主要分为下面几个部分:
- fail-fast简介
- fail-fast示例
- fail-fast解决方法
- fail-fast原理
- fail-fast解决原理
Java集合系列[3]-LinkedList分析与源码解析
概述
之前介绍了 ArrayList 的整体架构。接下来我们来继续看List的另一个实现 LinkedList。主要分为以下部分:
- 第一部分 AbstractSequentialList简介
- 第二部分 LinkedList简介
- 第三部分 数据结构分析
- 第四部分 源码分析
- 第五部分 遍历方式
Java集合系列[2]-ArrayList分析与源码解析
概述
之前介绍了 Collection 的整体架构。本文将通过Collection的具体类来加深理解。首先我们来看List,而ArrayList是List中最常用的,所以我们从他下手。主要分为以下部分:
- 第一部分 简介
- 第二部分 数据结构分析
- 第三部分 源码分析
- 第四部分 遍历方式
- 第五部分 toArray()异常
Java集合系列[1]-Collection框架
概述
下图是Collection框架的类关系图:
Collection是一个接口,主要有2个分支,分别是List和Set。List和Set都是接口,他们都继承自Collection接口。List是有序队列,可以有重复元素;Set是数学概念中的集合,无序的,也是没有重复元素的(数学上的集合有三个特征:无序性、互异性、确定性)。
为了方便,JDK抽象出了AbstractCollection抽象类,它实现了Collection接口中大部分方法。这样在Collection的实现类中,就可以通过集成AbstractCollection省去了很多重复的编码工作。AbstractList和AbstractSet都继承自AbstractCollection,具体的List实现类继承自AbstractList(例如ArrayList、LinkedList、Vector、Stack等),而具体的Set实现类继承自AbstractSet(例如HashSet、TreeSet等)。
另外,Collection还继承Iterable接口,里面有一个iterator()方法,它返回Iterator接口。通常,我们可以通过Iterator迭代器来遍历集合。ListLiterator接口是List接口特有的,在List接口中,通过调用listIterator()返回一个ListIterator迭代器对象。