df007df

95
获赞数
5
关注数
64
粉丝数
杭州
IP 属地未知
2014-04-25 加入
浏览 12.6k

Java,源码分析,敏捷开发, PM
前阿里巴巴员工,阿里云和菜鸟的后端开发。

317 声望|学徒
全站排名超越 95% 用户
java
105
php
101
xdebug
64
java并发
35
arraylist
35
1 黄金勋章
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 发布了文章2022-05-25
    Move the blog to CSDN
    Move the blog to CSDN
  • 发布了文章2022-05-25
    Move the blog to CSDN
  • 发布了文章2022-05-23
    《将博客搬至CSDN》
    为什么发布出去啊啊啊
  • 发布了文章2022-05-18
    将博客搬至CSDN
    将博客搬至CSDN
  • 发布了文章2020-03-29
    将-博?客1搬@至3 “C@”S“#D”N#
    AFlux<T>is a standardPublisher<T>that represents an asynchronous sequence of 0 to N emitted items, optionally terminated by either a completion signal or an error. As in the Reactive Streams spec, these three types of signal translate ...
  • 发布了文章2019-09-02
    [学习笔记-Java并发源码-2] volatile的实现原理
    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。
  • 发布了文章2019-08-31
    [学习笔记-Java并发源码-1] synchronized的实现原理
    在Java中,如果一遇到多线程情况需要解决,我们想到最多的可能就是synchronized。或者叫它“同步”,很早以前或许synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们慢慢摒弃它。
  • 发布了文章2019-08-31
    [学习笔记-Java并发源码] 目录
    本系列开始记录针对java并发体系的相关源码学习。大部分来之网络内容,只是自己整理与总结之用。 synchronized synchronized的实现原理 volatile的实现原理 AQS
  • 发布了文章2019-08-24
    [学习笔记-Java集合-17] Queue - DelayQueue源码分析
    介绍 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 继承体系 从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。 另外,DelayQueue还组合了一个叫做Delayed的接口,DelayQueue中存储的所有元素必须实现Delayed接口。 那...
  • 发布了文章2019-08-22
    [学习笔记-Java集合-16] Queue - LinkedBlockingQueue源码分析
    介绍 LinkedBlockingQueue是java并发包下一个以单链表实现的阻塞队列,它是线程安全的,至于它是不是有界的,请看下面的分析。 源码分析 主要属性 {代码...} capacity,有容量,可以理解为LinkedBlockingQueue是有界队列 head, last,链表头、链表尾指针 takeLock,n...
  • 发布了文章2019-08-21
    [学习笔记-Java集合-15] Queue - ArrayBlockingQueue源码分析
    介绍 ArrayBlockingQueue是java并发包下一个以数组实现的阻塞队列,它是线程安全的,至于是否需要扩容,请看下面的分析。 队列 队列,是一种线性表,它的特点是先进先出,又叫FIFO,就像我们平常排队一样,先到先得,即先进入队列的人先出队。 源码分析 主要属性 {代...
  • 发布了文章2019-08-20
    [学习笔记-Java集合-14] Queue - PriorityQueue源码分析
    介绍 优先级队列,是0个或多个元素的集合,集合中的每个元素都有一个权重值,每次出队都弹出优先级最大或最小的元素。 一般来说,优先级队列使用堆来实现。 源码分析 主要属性 {代码...} 默认容量是11; queue,元素存储在数组中,这跟我们之前说的堆一般使用数组来...
  • 发布了文章2019-08-18
    [学习笔记-Java集合-13] Set - ConcurrentSkipListSet源码分析
    可以看到,ConcurrentSkipListSet基本上都是使用ConcurrentSkipListMap实现的,虽然取子set部分是使用ConcurrentSkipListMap中的内部类,但是这些内部类其实也是和ConcurrentSkipListMap相关的,它们返回ConcurrentSkipListMap的一部分数据。
  • 发布了文章2019-08-18
    [学习笔记-Java集合-12] Set - CopyOnWriteArraySet源码分析
    但是,我们知道CopyOnWriteArrayList底层其实是一个数组,它是允许元素重复的,那么用它来实现CopyOnWriteArraySet怎么保证元素不重复呢?
  • 发布了文章2019-08-18
    [学习笔记-Java集合-11] Map - ConcurrentSkipListMap源码分析
    介绍 跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。 跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。 跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。 存储结构 跳表在原有的有序链表上面增加了多级索引...
  • 发布了文章2019-08-17
    [学习笔记-Java集合-10] Set - LinkedHashSet源码分析
    介绍 上一节我们说HashSet中的元素是无序的,那么有没有什么办法保证Set中的元素是有序的呢? 答案是当然可以。 LinkedHashSet就有这个功能,它是怎么实现有序的呢? 源码分析 LinkedHashSet继承自HashSet,让我们直接上源码来看看它们有什么不同。 {代码...} 完了,...
  • 发布了文章2019-08-17
    [学习笔记-Java集合-9] Set - HashSet源码分析
    简介 集合,这个概念有点模糊。 广义上来讲,java中的集合是指java.util包下面的容器类,包括和Collection及Map相关的所有类。 中义上来讲,我们一般说集合特指java集合中的Collection相关的类,不包含Map相关的类。 狭义上来讲,数学上的集合是指不包含重复元素的容...
  • 发布了文章2019-08-17
    [学习笔记-Java集合-8] Map - ConcurrentHashMap 源码分析(二)
    删除元素 删除元素跟添加元素一样,都是先找到元素所在的桶,然后采用分段锁的思想锁住整个桶,再进行操作。 {代码...} 计算hash; 如果所在的桶不存在,表示没有找到目标元素,返回; 如果正在扩容,则协助扩容完成后再进行删除操作; 如果是以链表形式存储的,则遍...
  • 发布了文章2019-08-17
    [学习笔记-Java集合-7] Map - ConcurrentHashMap 源码分析(一)
    synchronized java中的关键字,内部实现为监视器锁,主要是通过对象监视器在对象头中的字段来表明的。 synchronized从旧版本到现在已经做了很多优化了,在运行时会有三种存在方式:偏向锁,轻量级锁,重量级锁。 偏向锁,是指一段同步代码一直被一个线程访问,那么这...
  • 发布了文章2019-08-14
    [学习笔记-Java集合-6] Map - WeakHashMap源码分析
    WeakHashMap是一种弱引用map,内部的key会存储为弱引用,当jvm gc的时候,如果这些key没有强引用存在的话,会被gc回收掉,下一次当我们操作map的时候会把对应的Entry整个删除掉,基于这种特性,WeakHashMap特别适用于缓存处理。