摘要: CopyOnWriteArrayList是一个并发集合类,它实现了List接口,它是一个线程安全类而且它实现线程安全的机制和Vector不一样。JavaAPI文档说它是通过复制一个内部数组来实现写操作(包括add、set等等)的线程安全机制。这种方式会很耗费性能,但是在遍历操作次数远大于写操作的时候效率会很高。这种复制模式称为“snapshot style”,当调用iterator方法创建迭代器时,迭代器保留一个指向底层数组的引用,在迭代器的生命周期内,这个数组永远不会改变,并且迭代器不支持写操作,会产生UnsupportedOperationException异常。 来看看代码:1 /... 阅读全文
posted @ 2013-07-25 21:07 画水 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 * Hashtable继承于Dictionary类,且实现了Map接口 3 * 4 */ 5 public class Hashtable 6 extends Dictionary 7 implements Map, Cloneable, java.io.Serializable { 8 9 /** 10 * 定义内部存储数据的Entry数组。 11 */ 12 private transient Entry[] table; 13 14 /** 15 * 定义table中的实际e... 阅读全文
posted @ 2013-07-25 14:23 画水 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 今天在看Hashtable的toString()源码时,看到了其中有一个"key == this"的判断,于是突发奇想,如果用Hashtable添加自身再做一些别的操作会怎样?①,hashCode方法先看代码:1 public static void main(String[] args) {2 Hashtable table = new Hashtable();3 table.put(table, 1);4 System.out.println(table.hashCode());5 9 }如果我们运行这段代码,好,正常运行,输... 阅读全文
posted @ 2013-07-25 11:10 画水 阅读(253) 评论(0) 推荐(0) 编辑