
实现原理
JJiaoAo
这个作者很懒,什么都没留下…
展开
-
Java 动态代理实现AOP
[b]JDK动态代理[/b]JDK 1.3以后,Java提供了动态代理的技术,允许开发者在运行期创建接口的代理实例。在Sun刚推出动态代理时,还很难想象它有多大的实际用途,现在我们终于发现动态代理是实现AOP的绝好底层技术。 JDK的动态代理主要涉及到java.lang.reflect包中的两个类:Proxy和InvocationHandler。其中InvocationHandle...原创 2012-08-30 17:40:23 · 125 阅读 · 0 评论 -
Java HashMap实现原理
[b]1.HashMap的数据结构[/b]数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图:[img]http://dl.it...原创 2012-09-04 17:31:29 · 119 阅读 · 0 评论 -
Java ArrayList的实现原理
[b]1. ArrayList概述:[/b] ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元...原创 2012-09-05 10:19:23 · 127 阅读 · 0 评论 -
Java HashSet的实现原理
[b]1. HashSet概述:[/b] HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 [b]2. HashSet的实现:[/b] 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此Ha...原创 2012-09-12 21:25:34 · 406 阅读 · 0 评论 -
Java LinkedHashSet的实现原理
[b]1. LinkedHashSet概述:[/b] LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,...原创 2012-09-12 21:29:21 · 137 阅读 · 0 评论 -
Java LinkedHashMap的实现原理
[b]1. LinkedHashMap概述:[/b] HashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺...原创 2012-09-12 21:54:25 · 155 阅读 · 0 评论