![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
码出高效
来自流星
这个作者很懒,什么都没留下…
展开
-
集合的 modCount
AbstractList 迭代器认为集合应该返回的修改值,如果和期望的值不一致,那么迭代器检测到了并发修改 protected transient int modCount = 0; List迭代时定义了期望的修改值: int expectedModCount = modCount;判定迭代是否结束条件: 迭代器的 next()方法在调用时会检测期望值与集合修...原创 2019-06-26 10:20:27 · 865 阅读 · 0 评论 -
JDK7 HashMap(一)
哈希类集合的三个基本存储概念:table,存储所有节点数据的数组 slot 哈希槽,即 table[i] 的位置 bucket 哈希桶,即 table[i] 上所有元素形成的表或者树的集合 存储所有节点的table数组 transient Node<K,V>[] table; 描述一个hash节点信息: static clas...原创 2019-06-28 17:33:19 · 181 阅读 · 0 评论 -
TreeMap新增节点演化过程
按照 :插入 55 56 57 58 83 ,删除57 ,插入59的顺序建树55直接插入、染黑就行,56染红,57插入时,出现连续红节点,由于默认null节点是黑色,于是发生左旋插入58时,又出现连续红色,此时父叔节点都是红色,则仅触发重新着色,不进行旋转,56从红变黑是因为根节点每次调整后都会染黑插入83时再次需要调整,此时情况和57插入时类似,发生了左旋57...转载 2019-06-28 09:49:49 · 181 阅读 · 0 评论 -
码出高效,面向对象
方法覆写: 可以总结为容易记忆的口诀:一大两小两同 1. 一大,子类的方法访问权限控制符只能相同或变大 2. 两小,抛出异常和返回值只能变小,能够转型为父类对象 3. 两同, 方法名和参数必须完全相同方法重载: 在同一类中,如果多个方法有相同的名字、不同的参数即为重载。 在编译器眼中 方法名称 + 参数类型 + 参数个数, 组成...原创 2019-06-24 17:47:51 · 95 阅读 · 0 评论 -
红黑树概念
红黑树:主要特征:在每个节点上增加一个属性来表示节点的颜色,可以是红色,也可以是黑色。 红黑树与AVL树类似,都是在插入和删除元素时,通过特定的旋转保持自身平衡,从而获得较高查找性能。约束条件: 节点只能是红色或者黑色 根节点必须是黑色 所有NIL节点都是黑色 一条路径上不能出现相邻的两个红色节点 ...原创 2019-06-27 10:33:18 · 497 阅读 · 0 评论 -
树相关概念
树 (tree): 树是一种常见的数据机构,它是一个由有限节点组成的一个具有层次关系的集合,数据就存在树的 这些节点中。根节点: 最顶层只有一个节点,称之为根节点,root节点。叶子节点: 如果每个节点下方没有任何分叉的话,就是叶子节点。节点的高度: 从某个节点出发,到叶子节点为止,最长简单路径上边的条数,称之为节点的...原创 2019-06-26 16:41:34 · 395 阅读 · 0 评论 -
开发手册 相关规范
final可以声明类、成员变量、方法及本地变量下列情况下推荐使用final关键字: 1. 不允许被继承的类,如String类 2. 不允许修改引用的域对象,如POJO类的域变量 3. 不允许被重写的方法,如POJO类的setter方法 4. 不允许运行过程中重新赋值的局部变量 5. 避免上下文重复使用一个变量,使用final描述可以强制定义一个变量...转载 2019-06-26 15:17:11 · 188 阅读 · 0 评论 -
阿里巴巴开发手册 各层命名规范
Service/DAO层方法命名规约:获取单个对象的方法用get做前缀。 获取多个对象的方法用list做前缀。(这个还真不怎么用,我之前一般都是get...List这种方式命名) 获取统计值的方法用count做前缀。 插入的方法用save(推荐)或insert做前缀。 删除的方法用remove(推荐)或delete做前缀。 修改的方法用update做前缀。领域模型命名规约:...转载 2019-06-26 14:27:41 · 3317 阅读 · 0 评论 -
CopyOnWriteArrayList
并发容器 CopyOnWriteArrayList该容器内部会对Iterator进行加锁操作。 COW Copy-On-Write 它是并发的一种思路,实现读写分离,如果是写操作,则复制一个新集合,在新集合内添加和删除元素待一切修改完毕后,将原集合的引用指向新的集合。 使用COW注意点: 1. 尽量设置合理的初始容量,它扩容的代价比较大...原创 2019-06-26 11:04:34 · 103 阅读 · 0 评论 -
JDK7 HashMap(二)
public V put(K key, V value): public V put(K key, V value) { // hash函数计算得到hash值 int hash = hash(key); // 通过hash函数获得哈希槽的位置 int i = indexFor(hash, table.length); ...原创 2019-07-01 10:59:53 · 87 阅读 · 0 评论