HashMap源码解读

2019-05-29 作者:计算机教程   |   浏览(166)
/**
     * The default initial capacity - MUST be a power of two.
   * 解释:为了节省空间和让元素均匀分布,所以初始化容量,需要为2的乘方。
     */
    static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;

     /**
      * The load factor used when none specified in constructor.
    * 解释:默认的加载因子
      */
     static final float DEFAULT_LOAD_FACTOR = 0.75f;

    /**
     * The bin count threshold for using a tree rather than list for a
     * bin.  Bins are converted to trees when adding an element to a
     * bin with at least this many nodes. The value must be greater
     * than 2 and should be at least 8 to mesh with assumptions in
     * tree removal about conversion back to plain bins upon
     * shrinkage.
     * 解释:当一个桶中的元素个数达到8个时候就要,数据存储的数据结构就由链表变为了红黑树
     */
    static final int TREEIFY_THRESHOLD = 8;

    /**
     * The bin count threshold for untreeifying a (split) bin during a
     * resize operation. Should be less than TREEIFY_THRESHOLD, and at
     * most 6 to mesh with shrinkage detection under removal.
     * 解释:数据结构由红黑树转化为链表
     */ 
     static final int UNTREEIFY_THRESHOLD = 6;

jQuery源码分析系列

声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!

版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准

附上每一章的源码注释分析 :https://github.com/JsAaron/jQuery 

 

正在编写的书 - jQuery架构设计与实现

 

本人在慕课网的教程(完结)

jQuery源码解析(架构与依赖模块) 64课时

jQuery源码解析(DOM与核心模块)[64课时](http://www.imooc.com/learn/172)

 

jQuery源码分析目录(完结)

jQuery源码分析系列(01) : 整体架构

jQuery源码分析系列(02) : 选择器

jQuery源码分析系列(03) : 选择器 Sizzle引擎 - 词法解析

jQuery源码分析系列(04) : 选择器 Sizzle引擎 - 解析原理

jQuery源码分析系列(05) : 选择器 Sizzle引擎 - 编译函数

jQuery源码分析系列(06) : 选择器 Sizzle引擎 - 超级匹配

jQuery源码分析系列(07) : 筛选器 Sizzle引擎 - 位置伪类

jQuery源码分析系列(08) : 选择器 Sizzle引擎 - 高效查询

jQuery源码分析系列(09) : 回调对象 - Callbacks

jQuery源码分析系列(10) : 回调对象 - Callback深入

jQuery源码分析系列(11) : 延时对象 - Deferred概念

jQuery源码分析系列(12) : 延时对象 - Deferred源码剖析

jQuery源码分析系列(13) : 数据缓存 - Cache

jQuery源码分析系列(14) : 回溯魔法 - end和pushStack

jQuery源码分析系列(15) : 钩子机制 - 属性操作

jQuery源码分析系列(16) : 深入浏览器兼容 细数jQuery Hooks 属性篇

jQuery源码分析系列(17) : 事件绑定 - bind/live/delegate/on

jQuery源码分析系列(18) : 事件绑定 - 体系结构

jQuery源码分析系列(19) : 事件绑定 - 绑定设计

jQuery源码分析系列(20) : 事件绑定 - 委托设计

jQuery源码分析系列(21) : 事件绑定 - 自定义设计

jQuery源码分析系列(22) : 事件绑定 - 模拟事件

jQuery源码分析系列(23) : DOM操作核心 - domManip

jQuery源码分析系列(24) : DOM操作核心 – buildFragment

jQuery源码分析系列(25) : DOM操作方法(一)

jQuery源码分析系列(26) : DOM操作方法(二)html,text,val

jQuery源码分析系列(27) : 样式操作 – CSS

jQuery源码分析系列(28) : 样式操作 – addClass

jQuery源码分析系列(29) : 元素操作 – 元素大小

jQuery源码分析系列(30) : 元素操作 – 窗口尺寸

jQuery源码分析系列(31) : Ajax - 整体结构

jQuery源码分析系列(32) : Ajax - deferred实现

jQuery源码分析系列(33) : Ajax - 前置过滤器和请求分发器

jQuery源码分析系列(34) : Ajax - 预处理jsonp

jQuery源码分析系列(35) : Ajax - jsonp的实现与原理

jQuery源码分析系列(36) : Ajax - 类型转化器

jQuery源码分析系列(37) : Ajax - 总结

jQuery源码分析系列(38) : 队列操作

jQuery源码分析系列(39) : 动画队列

jQuery源码分析系列(40) : 动画设计

jQuery源码分析系列(41) : 动画实现

原文:http://www.cnblogs.com/aaronjs/p/3279314.html

 

 Q&A:

  1. 为什么变成红黑树是8,而转化成链表是6?

本文由www.2003.com发布于计算机教程,转载请注明出处:HashMap源码解读

关键词: