自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 JUC并发编程基石——AQS深入解读

Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发 场景中使用的组件。比如ReentrantLock,Semaphore,CountDownLatch、ThreadPoolExecutor等等。并发包的作者是大名鼎鼎的 Doug Lea。文章目录深入解读AQS源码前言什么是CASLockSupport工具类独占模式获取锁释放锁共享模式获取共享锁释放共享锁线程间通信等待通知

2020-10-11 23:02:29 609

原创 散列表&HashMap、LinkedHashMap源码深入解读

散列表的英文叫"Hash Table",我们一般也叫做"哈希表"或者"Hash表",你一定听过它,但是你是不是真的理解这种数据结构呢?散列表用的是数组支持下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,没有数组就没有散列表。那它具体又是如何实现的呢  我们知道散列表将元素散落在各个槽中,无法通过添加的顺序来遍历每一个元素。如果我们想要按照元素添加的先后顺序遍历它该如何实现呢?  LRU是

2020-10-02 16:07:51 2503 4

原创 堆、堆排序&PriorityQueue源码分析

堆、堆排序&PriorityQueue源码分析前言  有一个数据流a[],每时每刻都在发生着数据的插入、删除,如何实时动态的获取该数据流的前K大元素呢?另外一个数据流b[],每时每刻数据也发生着变化,如何实时获取该数据流的中位数呢?除了插入排序、快速排序、归并排序等几种常见的排序算法外,还有一种排序叫做堆排序,你知道它是如何实现的么?带着这些问题我们先来看一下什么是堆什么是堆  堆是一种特殊的二叉树,必须满足以下两点:  1.必须是一个完全二叉树  2.堆中的每一个节点的值都必须大于等

2020-09-07 16:54:58 303

原创 经典数据结构之链表、队列、栈&LinkedList源码分析

链表、队列、栈这三种都是线性表数据结构。线性表,顾名思义,就是将数据像一条线一样串起来的一种数据结构。LinkedList是java最常用的一种集合框架,它既可以当作链表来使用,也可以当作队列、栈来使用。所以我们可以分析LinkedList的源码来深入理解链表、队列、栈的底层实现方式

2020-09-01 18:06:04 559

原创 经典数据结构之数组&ArrayList源码分析

数组是我们学习数据结构与算法时第一个解除的数据结构,主流的编程语言都提供了数组这一基本数据类型。它是一种线性表,存储了相同类型的数据,在内存中是一块连续的空间  List集合是java编程最常用的集合框架,它继承自Collection,是一个有序集合,也称序列。用户可以精准的控制每个元素的插入、删除,也可以通过整数索引index访问任一元素,并且可以遍历整个集合搜索某一元素。List集合允许插入重复元素和null元素。

2020-08-30 13:40:10 764

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除