类注释 线程不安全,出现并发问题会 fail fast,并发需要用 Collections.synchronizedMap 包裹起来 顺序不按照插入顺序 hashcode 分散均匀很重要 hashcode 分散不均匀,Compareble 来补充 capacity、load factor 参数很重要 ...
分类:
其他好文 时间:
2019-02-26 00:55:39
阅读次数:
131
Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码。 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: ...
分类:
编程语言 时间:
2019-02-08 20:18:22
阅读次数:
186
本篇旨在收集一些看似简单,但是很难阐述清楚的java基础问题,巩固基础,温故知新 1.快速失败(fail-fast)和安全失败(fail-safe)? 一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concur ...
分类:
编程语言 时间:
2019-01-17 17:40:47
阅读次数:
202
java.util包下面所有的集合类都是快速失败的,而java.util.concurrent包下面的所有类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException,而安全失败的迭代器永远不会抛出这样的异常。代码示例:/* * @desc java集合中F ...
分类:
其他好文 时间:
2018-12-26 20:58:39
阅读次数:
173
概要 前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。内容包括:第1 ...
分类:
编程语言 时间:
2018-12-19 01:13:08
阅读次数:
258
Java集合的快速失败机制 “fail-fast” "fail-fast"是java集合的一种错误检测机制,当多个线程对集合进行结构上的改变的操作时,有可能会产生 fail-fast 机制。 例如:假设存在两个线程(线程1、线程2),线程1通过Iterator在遍历集合A中的元素,在某个时候线程2修 ...
分类:
编程语言 时间:
2018-12-12 00:41:00
阅读次数:
200
HashMap在高并发环境下会产生的问题 HashMap其实并不是线程安全的,在高并发的情况下,会产生并发引起的问题: 比如: HashMap死循环,造成CPU100%负载 触发fail fast 下面逐个分析下出现上述情况的原因: HashMap死循环的原因 HashMap进行存储时,如果size ...
分类:
其他好文 时间:
2018-09-07 20:13:18
阅读次数:
247
AbstractList类中有一个属性 protected transient int modCount = 0; api中对它的描述是: 此列表已被结构修改的次数。 结构修改是改变列表大小的那些修改,或以其他方式扰乱它,使得正在进行的迭代可能产生不正确的结果。 该字段由迭代器和列表迭代器实现使用, ...
分类:
其他好文 时间:
2018-09-05 18:08:25
阅读次数:
205
fail-fast机制是java集合(Collection)中的一种错误机制。fail-fast如何产生:1.多个线程同时操作同一个collectionpublicstaticList<String>list=newArrayList<String>();publicstaticvoidmain(String[]args){newThread(newRunnable(){@
分类:
编程语言 时间:
2018-08-16 15:41:56
阅读次数:
118
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集 ...
分类:
编程语言 时间:
2018-07-29 22:16:30
阅读次数:
152