提问: 1.hashCode()源码是怎么实现的。 2.hashCode()是为了配合基于散列的集合而设计的 3.hash数据结构,如何做到存取的时间复杂度为O(1)的。{函数算>逐个比较} 答案在以下链接中: 1. http://www.cnblogs.com/dolphin0520/p/3681 ...
分类:
其他好文 时间:
2016-05-09 09:59:42
阅读次数:
184
1.定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.类图 3.代码示例 4.应用场景举例 一个对象被多个对象使用并且需要修改 类型需要多个对象但是对象的初始化消耗巨大 5.JAVA源码中的模式实现 在jdk源码中,凡事实现了Cloneable接口的类均使用了此模式。例如我 ...
分类:
其他好文 时间:
2016-05-08 16:47:23
阅读次数:
129
1. 前言HashMap的容量大小会根据其存储数据的数量多少而自动扩充,即当HashMap存储数据的数量到达一个阈值(threshold)时,再往里面增加数据,便可能会扩充HashMap的容量。可能?事实上,由于JDK版本的不同,其阈值(threshold)的默认大小也变得不同(主要是计算公式的改变),甚至连判断条件也变得不一样,所以如果说threshold = capacity * loadFac...
分类:
其他好文 时间:
2016-05-07 10:03:48
阅读次数:
202
1. 前言能用图说清楚的,就坚决不用代码。能用代码撸清楚的,就坚决不写解释(不是不写注释哦)。2. 数据结构HashMap内部通过维护一个Entry数组(变量为table),来实现其基本功能,而Entry是HashMap的内部类,其主要作用便是存储键值对,其数据结构大致如下图所示。从Entry的数据结构可以看出,多个Entry是可以形成一个单向链表的,HashMap中维护的E...
分类:
编程语言 时间:
2016-05-06 15:26:33
阅读次数:
185
HashSet 实现了 Set 接口,内部是由 HashMap 实例辅助实现的。它不保证元素的顺序,数据允许为 null......
分类:
其他好文 时间:
2016-05-06 12:13:28
阅读次数:
100
一、HashMap该类的节点Node类为:staticclassNode<K,V>implementsMap.Entry<K,V>{
finalinthash;
finalKkey;
Vvalue;
Node<K,V>next;
Node(inthash,Kkey,Vvalue,Node<K,V>next){
this.hash=hash;
this.key=key;
this.value=value;
this.next=next;
}
..
分类:
编程语言 时间:
2016-05-05 13:03:52
阅读次数:
212
一、前言 HashMap是常用的Map实现类,其中可以保存一个key为null的键值对和任意多个key!=null但是value为null的键值对。 二、HashMap源代码分析 2.1、类的继承关系 //Map中定义了Map必须支持的一些操作,abstractMap中添加了其默认实现 public... ...
分类:
其他好文 时间:
2016-05-04 01:13:10
阅读次数:
166
这是一个用来对并发计数的信号量,并发量超过一定数值则只能等待。从概念上来说,semaphore 维持着一组许可证。获取锁的时候,需要先获得 semaphore 的许可才行......
分类:
其他好文 时间:
2016-05-03 12:46:27
阅读次数:
362
1.方法intern()为java内部方法,如下publicnativeStringintern();native方法为通过jvm进行运行,jdk8中隐藏了该方法的具体处理方法。2.作用:该方法注释为“如果常量池中存在当前字符串,就会直接返回当前字符串.如果常量池中没有此字符串,会将此字符串放入常量池中后,再返回”..
分类:
其他好文 时间:
2016-04-28 18:27:38
阅读次数:
454
一、前言 有了前一篇对集合类的概述,我们知道ArrayList是属于Collection类系中的一个具体实现类,其特点是长度可以动态改变,集合内部使用数组保存元素。下面我们对源码进行分析。 二、ArrayList源代码分析 2.1 类的继承关系 public class ArrayList exte... ...
分类:
其他好文 时间:
2016-04-19 22:49:09
阅读次数:
344