java基础
文章平均质量分 67
java基础
cb李先生
这个作者很懒,什么都没留下…
展开
-
HashMap关键方法
这里写目录标题1. 类介绍二级目录三级目录1. 类介绍官方api地址该类是基于哈希表对Map接口进行的实现。该实现提供了所有可重写的map操作,并允许null值和null键。(HashMap与Hashtable大致相同,区别是Hashtable是同步的,并且Hashtable的key和value都不允许为null。)这个类不能保证map的顺序;不同时间相同的键值对也可能顺序不一样。二级目录三级目录...原创 2020-06-07 22:49:57 · 114 阅读 · 0 评论 -
HashMap中树的相关操作
树操作1.数据模型2.查找根节点3. 树节点查找4. hash索引相同时比较大小5.链表转为树6. 树put节点方法7.树删除节点操作8.扩容时,分散相同hash索引方法1.数据模型 /** * hashMap超长时的数据模型,红黑树 * 并且在树中维护了一个潜在的双向链表(原链表的关系) */ static final class TreeNode<K,V> extends LinkedHashMap.Entry<K,V> {原创 2020-06-07 22:48:34 · 200 阅读 · 0 评论 -
双向链表LinkedList 关键方法源码解读
/** * Node节点,说明是双向链表 */ private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; th.原创 2020-06-05 23:42:45 · 106 阅读 · 0 评论 -
ArrayList常见方法解读(源码,以及对内存使用,gc的影响)
扩容方法 ensureCapacity, 普通扩容类似只是截取了此方法中的5,6,7步。MAX_ARRAY_SIZE = Integer.MAX_VALUE-8;Integer.MAX_VALUE = 0x7fffffff; /** * 对elementData扩容 * 1. 原elementData=[], minCapacity<=10,无效操作 * 2. 原elementData=[], MAX_ARRAY_SIZE>=minCapacity>10, .原创 2020-06-04 22:51:55 · 176 阅读 · 0 评论 -
java自动装箱,拆箱
装箱:1. 在操作数栈顶压入常量值52. 调用Integer.valueOf的静态方法,得到Integer的对象到操作数栈顶3. 将操作数栈顶赋给局部变量表的1号位置(因为是静态方法,局部变量表不存在this,所以形参args占0号位,i占1号位)拆箱:1. 将刚才生成1号位的i对象压入操作数栈2. 调用对象i的intValue方法得到常量放在操作数栈顶3. 将操作数栈顶的值赋值给局部变量表的2号位置(a)...原创 2020-05-28 13:50:51 · 110 阅读 · 0 评论