分类: 源码阅读


  1. Murmurhash初步学习

      Murmurhash是由Austin Appleby在2008年发明的一种非常简单的、不具有加密特性的散列函数,可以非常容易地应用在常见的基于散列的查找场景中。Murmurhash非常简单,在X86体系结构的机器上可以用少于52条指令完成所有的计算,由此带来的性能也是非常优秀的。此外,Murmurhash具有非常好的强混淆性(雪崩效应)和非常低的冲突风险。强混淆性指的是输入数据的微小改变,都会产生一个完全不同的散列值,这使得借助Murmurhash计算得到的散列值具有非常优秀的分布性。Murmurhash的当前版本是Murmurhash3,可以用来生成一个32位或128的散列值。如果生成结果是128位结果,那么在X86结构和X64结构上的计算结果是不一样的。本文以Murmurhash2为例进行讨论。

    Read More...


  2. Java多线程 - ThreadLocal解释

      关于 java.io.ThreadLocal 的部分笔记,ThreadLocal维护了多线程环境中每个线程的私有变量内容,保证这些私有变量内容只对特定的线程可见,其他线程无法访问、修改非自身线程中的变量内容。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  3. Java I/O - JAVA I/O概述

      在Java语言规范中,java.io下的接口和类设计负责完成系统输入、输出的功能,涵盖了数据流、序列化、文件、网络流多种应用场景,可以支持字节流、字符流的输入输出。所有测试及代码描述基于JDK版本1.7

    Read More...


  4. Java Map 08 - Segment

      关于 java.util.concurrent.ConcurrentHashMap.Segment<K, V> 的部分笔记,Segment是ConcurrentHashMap的内部类,也是ConcurrentHashMap集合中存储键值对实体的底层数据结构。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  5. Java Map 07 - ConcurrentHashMap

      关于 java.util.concurrent.ConcurrentHashMap<K, V> 的部分笔记,ConcurrentHashMap支持多个线程同一时刻访问集合内部的不同元素的特性,是HashMap的另一个线程安全版本(另一个是Hashtable)。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  6. Java Map 05 - Hashtable

      关于 java.util.Hashtable<K, V> 的部分笔记,Hashtable是一个不允许key和value为null的集合实现。和HashMap的功能和应用场景大致相同,但是Hashtable是一个线程安全的实现,可以用于多线程环境中。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  7. Java Map 04 - LinkedHashMap

      关于 java.util.LinkedHashMap<K, V> 的部分笔记,LinkedHashMap是HashMap的扩展,底层依赖数组+双向链表的形式完成了元素的存储和查找,并且该实现返回的元素是有序的。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  8. Java Map 03 - HashMap

      关于 java.util.HashMap<K, V> 的部分笔记,HashMap是一个遍历顺序无序,不允许key重复的存储键值对映射的集合实现类。底层依赖了一个数组集合,数组中的每个元素维护了具有需要存储在相同下标位置的键值对实体链表结构。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  9. Java Map 02 - AbstractMap

      关于 java.util.AbstractMap<K, V> 的部分笔记,提供了对Map接口的最小实现。本文演示代码段的执行环境基于JDK版本1.7

    Read More...


  10. Java Map 01 - Map

      在Java语言规范中,Map作为Java集合框架中的一员,提供了对同类型数据进行存储、插入、删除和查找等需求的实现过程。其实现机制和特点使得Map是一个无序的(部分实现可以保证顺序),不可存储相同key的数据结构。本文演示代码段的执行环境基于JDK版本1.7

    Read More...