JDK1.7源码解析
文章平均质量分 85
想作会飞的鱼
~~~
展开
-
ArrayList源码解析(基于JDK1.7)
一、ArrayList简介ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。ArrayList的用法和Vector向类似,但是Vector是一个较老的集合,具有很多缺点,不建议使用。另外,ArrayList和Vector的区别是:ArrayList是线程不安全的,当多条线程访问同一个ArrayList集合时,程序需要手动保证该集合的同步性,而Vector则是线程安全的。原创 2017-08-22 21:37:15 · 1047 阅读 · 1 评论 -
LinkedList源码解析(基于JDK1.7)
一、LinkedList简介LinkedList的内部实现是双向链表,它继承了AbstractSequentialList,实现了List, Deque, Cloneable, Java.io.Serializable接口,因此LinkdeList本身支持就支持双端队列操作。LinkedList可以存储所有元素(包括 null)。LinkedList可以用作堆栈、队列或双端队列的实现。其内部链表的实原创 2017-08-23 11:04:20 · 718 阅读 · 0 评论 -
HashMap源码解析(基于JDK1.7)
一、HashMap简介哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理就是基于此。那么什么是哈希表呢? 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O原创 2017-08-23 17:15:45 · 9526 阅读 · 6 评论 -
LinkedHashMap源码剖析(基于JDK1.7)
一、LinkedHashMap简介LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。 LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变(扩容时映射顺序会重原创 2017-08-24 11:31:18 · 1230 阅读 · 0 评论 -
JDK动态代理的实现和原理解析(基于JDK1.7)
一、什么是代理代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。详细介绍请参考:java设计模式之代理模式。为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委原创 2017-08-29 20:18:17 · 8469 阅读 · 8 评论