LinkedHashMap继承自HashMap,相关基本操作性能略低于HashMap,由于需要额外代价维护链表。其遍历操作是通过操作该双向链表实现,而非内部散列表数组,因此性能为O(size)比HashMapO(capacity)更高。
支持两种顺序遍历:元素插入顺序(重复put不算)和最近使用优先顺序(调用put和get类似LRU),默认是按照元素插入顺序遍历。通过构造函数传入true可以实现最近使用优先遍历,每次put或get操作时,将该元素直接重新放置到链表头结点后面来实现最近使用优先遍历。
Link...
分类:
其他好文 时间:
2014-11-06 20:06:39
阅读次数:
205
对源码重新排版一下,方便阅读: /*
* (C) Radim Kolar 1997-2004
* This is free software, see GNU Public License version 2 for
* details.
*
* Simple forking WWW Server benchmark:
*
* Usage:
* ...
分类:
Web程序 时间:
2014-11-05 19:56:41
阅读次数:
244
HashMap本身是一个有数组和链表组成的数据结构,其插入和查找元素的消耗可以看成O(1)。默认散列表内部数组大小保证为2的幂次,由于内部采用了位运算代替了传统取模运算来确定元素插入位置。
HashMap性能由散列表的容量和装填因子两部分决定,其中装填因子默认是0.75,容量默认是16。
Map是独立接口,并非Collection子接口,但是提供三个集合类视图:键集合、值集合、键值对集合。分别对应keySet()、values()、entrySet()三个方法的返回值,这三个集合视图是无状态的,本身依赖Ma...
分类:
其他好文 时间:
2014-11-05 19:47:50
阅读次数:
359
LinkedList实现了List和Deque接口,其中Deque是一个双端队列,可以在头部和尾部两端添加和删除元素,因此LinkedList既可以当作先进先出的队列,也可以当作后进先出的栈。
LinkedList采用双向链表方式实现,因此插入、删除元素效率比较高,但不支持随机访问。
多线程环境下LinkedList不能保证线程安全,因此对其结构修改的操作应当程序员来保证线程安全,其迭代器支持fail-fast,迭代过程中试图发现是否发生修改,若修改了容器则抛出ConcurrentModificationE...
分类:
其他好文 时间:
2014-11-04 21:14:20
阅读次数:
338
到了这里,终于进入CI框架的核心了。既然是“引导”文件,那么就是对用户的请求、参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位。例如,用户的请求url:
http://you.host.com/usr/reg
经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理。 这之中,CodeIgniter.php做了哪些工作...
分类:
Web程序 时间:
2014-11-04 19:46:35
阅读次数:
338
到了这里,终于进入CI框架的核心了。既然是“引导”文件,那么就是对用户的请求、参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位。例如,用户的请求url:http://you.host.com/usr/reg经过引导文件,实际上会交给Application中的UsrController.....
分类:
Web程序 时间:
2014-11-04 18:59:56
阅读次数:
235
与块相关的操作由Dataset相关的类处理,存储结构由大到小是卷(FSVolume)、目录(FSDir)和文件(Block和元数据等)block相关block类有三个属性private long blockId;//blockidprivate long numBytes;//block大小priv...
分类:
其他好文 时间:
2014-11-03 17:41:03
阅读次数:
359
1. CopyOnWriteArrayList的迭代器保留一个执行底层基础数组的引用,这个数组当前位于迭代器的起始位置,由于基础数组不会被修改(修改都是复制一个新的数组),因此对其同步只需要保证数组内容的可见性。多个线程可以同时对这个容器进行迭代,而不会彼此干扰或者与修改容器的线程互相干扰。不会抛出CocurrentModificationException,并且返回元素与创建迭代器创建时的元素完全一致,不必考虑之后修改操作带来影响。
2. 每次修改容器都会复制底层数组,这需要一定开销,特别是容器规模较大。...
分类:
其他好文 时间:
2014-11-02 21:05:28
阅读次数:
261
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现、结构和设计。
Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作)。
打开Common.php中,第一行代码就非常诡异:
if ( ! defined('BASEPATH')) exit('No ...
分类:
Web程序 时间:
2014-10-31 00:00:09
阅读次数:
571
ArrayList实现
继承关系
java.lang.Object
- java.util.AbstractCollection
- java.util.AbstractList
- java.util.ArrayList
实现接口
Serializable, Cloneable, Iterable, C...
分类:
其他好文 时间:
2014-10-30 17:08:16
阅读次数:
224