
源码分析
刘彦民
尽最大的努力把方便留给别人和未来的自己
展开
-
Java集合---HashMap源码剖析
一、HashMap概述二、HashMap的数据结构三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 7、Fail-Fast机制特别声明:该片博客是对jdk7的HashMap 源码进行剖析,jdk8Ha...转载 2017-08-28 07:21:04 · 328 阅读 · 0 评论 -
ArrayList源码分析jdk8
本篇博客是基于JDK8来分析ArrayList源码,通过添加注释的方式分析ArrayList类中每个方法的含义,以及重点代码的实现思路。一下内容是从网上copy过来的,自己仔细的读了一遍,感觉没有什么问题,再次记录一下。一下是通过读源码总结出来的几点:1、ArrayList底层是通过数组的方式实现的2、默认初始数组长度是103、扩容大小为原数组长度的1.5倍4、数组的长度发生变化是修改modCou...转载 2018-03-26 20:37:05 · 187 阅读 · 0 评论 -
ArrayList和Vector的区别jdk8
共同点:1、ArrayList和Vector都实现了List接口2、ArrayList有的方法Vector大多数也都有(不完全一样)3、底层实现都是数组不同点:1、ArrayList是线程不安全的,Vector是线程安全的。(Vector把所有的public修饰的对外提供的方法都使用synchronized修饰,使用synchronized关键字来保证线程安全的)。类似的还有HashMap和Has...原创 2018-03-26 20:50:40 · 487 阅读 · 0 评论 -
java中的fail-fast(快速失败)机制
引入在前面介绍ArrayList的扩容问题时对于modCount的操作没有详细说明,该变量的操作在add,remove等操作中都会发生改变。那么该变量到底有什么作用呢?简介fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。当在迭代集合的过程中该集合在结构上发生改变的时候,就有可能会发生fail-fast,即抛出ConcurrentModifica...转载 2018-03-26 21:14:50 · 289 阅读 · 0 评论 -
JDK 1.8 LinkedList源码分析
LinkedList是一个实现了List接口和Deque接口的双端链表。 有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端。 LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以使用如下方式:List list=Collections.synchronizedList(new LinkedList(...));it...转载 2018-03-27 21:09:56 · 267 阅读 · 0 评论