- 博客(10)
- 收藏
- 关注
原创 HashMap源码解析(三)
hash函数final int hash(Object k) { int h = hashSeed; if (0 != h && k instanceof String) { return sun.misc.Hashing.stringHash32((String) k); } h ^= k.hashCode(); h ^= (h >>> 20)
2017-02-10 17:12:39 308
原创 HashMap源码解析(二)
成员变量这里的table,就是所谓的 “桶” 的概念,存储 键/值 对。它的长度必须为2的次幂,原因不知。 具体一点,table的初始长度是 DEFAULT_INITIAL_CAPACITY(16),当存储数量的元素大于 16*0.75 时,会进行扩充容量,长度变为 1 << 4 (32)。static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //
2017-02-10 08:44:23 515
原创 HashMap源码解析(一)
引言由于HashMap相对来说复杂一些,所以从类的注释开始。基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 /** * Hash table based implementation of th
2017-02-09 15:53:44 393
原创 Iterator和ListIterator对比
Iterator是ListIterator的父类,Iterator不可以并发操作,ListIterator可以并发操作。 方法名称 hasNext() next() remove() hasPrevious() pervious() add(e) nextIndex previousIndex() set(e) 方法说明 是否有下一个元素 获取下一个元
2017-02-09 09:48:09 462
原创 ArrayList源码解析(下)
序列化操作,writeObject和readObjectprivate void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ // Write out element count, and any hidden stuff int expectedModCount = modCou
2017-02-08 17:54:34 335
原创 ArrayList源码解析(中)
判断元素位置这些函数都相对简单。因为存储的元素可能为null,所以判断的时候多了一次。public int size() { return size;}public boolean isEmpty() { return size == 0;}public boolean contains(Object o) { return indexOf(o) >= 0;}publi
2017-02-08 12:32:20 785
原创 ArrayList源码解析(上)
成员变量elementData为实际存储数据的数组size为ArrayList的实际大小,和elementData的长度有所区别private static final long serialVersionUID = 8683452581122892189L;//默认的容量private static final int DEFAULT_CAPACITY = 10;private stati
2017-02-07 18:59:50 372
原创 JVM运行时数据区域
图例程序计数器当前线程所执行的字节码的行号指示器。虚拟机栈java方法执行的内存模型描述,存储局部变量表、操作数栈、动态链表、方法出口等信息。本地方法栈和虚拟机栈类似,不过执行的方法是Native方法,是由非java语言实现的方法。java堆最大的一块内存区域,存放对象实例。方法区存储类结构信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量属于方法区的一部分,存放编译期生成的各种字面量和
2017-02-07 14:34:37 333
原创 观察者模式
观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。简单代码实现public interface Observer { public void update(String message);}publi
2017-02-06 19:27:46 244
原创 Spring 自定义xsd
项目结构图代码application.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:people=
2017-02-01 12:24:09 1700
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人