源码解析
记录Java部分源码解析
张茂祯
嗯,随缘了
展开
-
【源码剖析】TreeMap和TreeSet
TreeMap和TreeSetTreeMap概念特点构造方法内部组成方法执行保存键值对 put根据键获取值查看是否包含某个值根据键删除键值对TreeMap总结TreeSet概念特点构造方法内部组成方法执行添加元素查看是否包含元素删除元素总结TreeMap概念特点基于红黑树实现的有序key-value集合,对元素自动排序(比较器)排序、无重复、重复值覆盖查找、插入、删除时间复杂度O(logn)线程不安全(线程安全问题使用ConcurrentSkipListMap)构造方法四个构造方法:原创 2020-11-18 11:24:13 · 114 阅读 · 0 评论 -
【源码剖析】HashMap和HashSet
HashMap和HashSetHashMap概念特点构造方法内部组成扩展策略方法执行保存键值对 put()查找方法 get()是否包含键是否包含值删除键值对遍历元素HashMap概念特点数组+链表+红黑树(JDK 8)不重复,可以为null(唯一),重复的键会重写value值。线程不安全构造方法三个构造方法,分别是:无参构造带一个参数initialCapacity初始容量的构造带两个参数initialCapacity初始容量和负载因子的构造 public HashMap(原创 2020-11-17 11:19:48 · 97 阅读 · 0 评论 -
【源码剖析】HashMap
HashMap基本概念特点JDK 8 的HashMap实现JDK1.7的HashMap实现内部组成(Java 8)源码剖析基本概念特点无序、线程不安全线程安全可用Hashtable,实现原理与HashMap类似,内部使用synchronized。高并发推荐使用ConcurrentHashMap需要保持添加顺序可用LinkedHashMap比较相同时,先比较hash在比较equalsJDK 8 的HashMap实现HashMap是 数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的。原创 2020-11-12 12:40:42 · 85 阅读 · 1 评论 -
【源码剖析】ArrayDqeqe
ArrayDququ基本概念特点方法源码剖析基本概念特点默认分配长度为16的数组。如果有参数numElements,如果numElements小于8,就是8如果大于等于8,分配的实际长度是严格大于numElements并且为2的整数幂的最小数。即如果numElements为10,实际分配为16,如果numElements为32,则为64。为了容纳numElements个元素,至少需要numElements+1个位置。如果tail的下一个位置是(tail+1)&(element原创 2020-11-12 11:00:25 · 95 阅读 · 0 评论 -
【源码解析】String、StringBuilder、StirngBuffer
字符串String基础知识常用方法String基础知识String是不可变字符串,final修饰的类,不可被继承。内部定义了final char[] value存储字符串数据。实现了Serializable,Comparable,CharSequence接口String重写了hashCode方法,采用多项式计算得到。不相同的字符串也会得到同样的hash。Object类中的hashCode方法是一个Native调用。重写了equals,改为内容的判断String str = "abc"存放原创 2020-11-04 21:23:09 · 72 阅读 · 0 评论 -
【源码剖析】Arraylist概述
ArraylistArraylist概述arraylist简介arryalist数据结构常用方法Arraylist源码分析Arraylist概述arraylist简介List接口实现类。动态数组,容量可以自动增长,动态增加内存。应用场景:查找修改线程不安全可以为null实现了Serializable接口,支持序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上通过下表序号进行快速访问,实现Cloneable接口,可以被克隆。arryalist数据结构ArrayL原创 2020-11-03 20:54:56 · 721 阅读 · 0 评论 -
【源码剖析】LinkedList
LinkedList:特点: List接口实现类,实现:链表应用场景:插入删除多线程:异步,线程不安全。API:Doubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).双向链表LinkedLIst实现了List和Deque接口所有选原创 2020-11-02 21:43:00 · 113 阅读 · 0 评论