![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 82
Campsisgrandiflora
记录下当前的学习内容,记录下当前的所思所想,书写与图画是为了更好地总结与思考,想做的事从现在开始就做,持之以恒地做一件事情,持续地学习与思考
展开
-
java源码阅读——CopyOnWriteArrayList和CopyOnWriteArraySet
目录CopyOnWriteArrayList迭代属性变更操作CopyOnWriteArraySet CopyOnWriteArrayList CopyOnWriteArrayList时ArrayList的一种线程安全变体,它的名字前面有个CopyOnWrite,这个名字就表明了它的操作特点,它的所有变动操作(新增add,设置set,删除remove等等)都是会先复制(copy)一个副本,然后再副本上进行相应操作,最后将副本写(write)回存储 CopyOnWriteArrayList的变动操作一般性的原创 2021-07-22 13:52:28 · 294 阅读 · 0 评论 -
java源码阅读——同步容器和并发容器
目录同步容器SynchronizedXXX类Vector,Stack,HashTable并发容器CopyOnWriteArrayListCopyOnWriteArraySetConcurrentHashMap 同步容器 在之前看的ArrayList,LinkedList,HashMap等的源码中,我们通过注释知道了这些个容器类都不是线程安全的对象,如果要实现同步,那么可以通过手动使用synchronized,或者使用SynchronizedXXX(XXX可以是Map,List,Set等)来包装这些容器类。原创 2021-07-22 13:52:04 · 202 阅读 · 0 评论 -
java源码阅读——HashSet
目录SetHashSet Set Set是实现不包含重复元素类的接口,比较正式的定义是,集合中不包含一对元素e1和e2,使得e1.equals(e2),就像Set这个名称所表现出来的那样,这个接口是对数学中集合的抽象建模 HashSet java中HashSet的实现实际上就是用的HashMap,它并不保证元素的存放顺序,允许存放Null。 定义 public class HashSet<E> extends AbstractSet<E> implements Set<E&原创 2021-07-19 11:44:38 · 130 阅读 · 0 评论 -
java源码阅读——HashMap
目录MapHashMap属性初始化 java中的HashMap实现了键-值对映射,它的底层结构是数组+链表/红黑树,和之前的顺序数据结构不同,它是实现了Map接口 Map Map是一个接口,用来实现存储键-值对的对象,Map的键不可以重复,每个键最多可以映射到一个值 HashMap 属性 // 默认初始化容量,1<<4值为16,必须设定为2的次方 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大原创 2021-07-11 14:11:58 · 129 阅读 · 1 评论 -
java源码阅读——包装类
在java中并不是所有变量都是类,java存在着基本数据类型,在很多时候,我们需要将基本数据类型转化为对象,这个时候就需要包装类 基本数据类型 包装类 位数 byte Byte 8 boolean Boolean 8 short Short 16 int Integer 32 long Long 64 float Float 32 double Double 64 char Character 16 我们这里就用Integer这个类为例,来看一下包装类的源码原创 2021-06-01 23:05:18 · 277 阅读 · 2 评论 -
java源码阅读——ArrayList
目录IterableCollectionListArrayList构造函数添加元素和扩容删除元素迭代操作线程同步 ArrayList类是一个我们经常要使用到的容器,它其实就是一个大小可以自动调整的数组 还是先来看一下ArrayList继承的类和实现的接口 Iterable 实现了这个接口的对象允许使用增强 for 语句来进行迭代 Collection collection是java容器实现的根接口,collection代表了一组对象(object),collection中的对象称为该collectio原创 2021-07-09 16:48:14 · 170 阅读 · 0 评论 -
java源码阅读——LinkedList
目录QueueDequeLinkedList添加元素删除元素检索 除了数组外,链表也是非常常用的数据结构,java里面的LinkedList就是实现了链表这一数据结构,而且它的底层是一个双向链表,下面是LinkedList的继承和实现结构 Queue LinkedList实现了List和Deque这两个接口,List这个接口在上一篇Array中解释过了,Queue队列除了Collection的基础操作之外,还额外提供了插入、提取和检查操作,这些操作每一个都以两种方式存在,一种是失败时抛出异常,另一种是失原创 2021-07-09 21:17:09 · 137 阅读 · 0 评论 -
java源码阅读——string
目录String中的finalString字符串压缩构造方法其他api String中的final 首先来看String的定义,用了final修饰,所以String类是无法被继承的 public final class String implements java.io.Serializable, Comparable<String>, CharSequence value这个变量就是用来存储字符串值的关键变量,之前jdk8的时候使用的是char数组,到了jdk9这里换成了byte数组 @S原创 2021-06-02 23:00:29 · 244 阅读 · 1 评论