java-collection
王新春
这个作者很懒,什么都没留下…
展开
-
集合的概述
象。它提供了如下功能: 1、增。add()、addAll() 2、删。remove()、 removeAll(),clear() 3、集合熟悉。size() isEmpty, boolean contains(Object o);boolean containsAll(Collection c); 4、覆盖提醒。int hashCode();boolean equals(Object o); 5、与数组相关。Object[] toArray(); T[] toArr原创 2013-04-14 11:59:49 · 68 阅读 · 0 评论 -
源码剖析之CopyOnWriteArrayList
2013-05-20 16:19:29 · 67 阅读 · 0 评论 -
源码剖析之CopyOnWriteArraySet
HashSet 是基于HashMap的实现。 从实现的角度就能看出CopyOnWriteArraySet 的使用条件和list的血缘更近,使用的场景也更近!! 它最适合于具有以下特征的应用程序: set 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突。 它是线程安全的。 因为通常需要复制整个基础数组,所以可变操作(add、set 和 remove 等等)的开销很大。 迭代器不支持可变 remove 操作。 使用迭代器进行遍历的速度很快,并且不会与其他线2013-05-20 17:31:15 · 67 阅读 · 0 评论 -
源码分析之 ConcurrentHashMap
2013-05-20 19:57:06 · 63 阅读 · 0 评论 -
ConcurrentModificationException 异常的抛出
2013-05-21 19:05:12 · 81 阅读 · 0 评论 -
源码剖析之ArrayBlockingQueue
那么阻塞。 2、是实现生产者消费者模型的极好的备选工具。 实现依赖: [b]1、lock锁(内存的可见性、互斥访问、限制编译器的代码优化调整) 2、Condition条件通知(线程间的协作)[/b] 注意点:代码中多次用的signal 而不是signalAll 有原因的: 1、signalAll 唤醒所有等待的线程,事实上只能有一个通过获得锁,那么会增加锁竞争的几率。效率也低,如果用signal ,那么仅唤醒一个线程,这正是我们所需要的场景! 为了看清楚ArrayBlockin2013-06-05 23:36:30 · 96 阅读 · 0 评论 -
CopyOnWriteArrayList再续
2015-03-21 12:25:30 · 61 阅读 · 0 评论