Pumpkin Fu's Blog

Thinking will not overcome fear but action will.

开坑记录

开坑记录

正文 Spring IOC 源码解读 Spring AOP 源码解读 Dubbo 服务暴露解读 Dubbo 服务调用解读 Dubbo SPI 扩展解读 本文首次发布于 fyypumpkin Blog, 作者 @fyypumpkin ,转载请保留原文链接.

Dubbo 服务调用解析

日常记录

正文 本文首次发布于 fyypumpkin Blog, 作者 @fyypumpkin ,转载请保留原文链接.

Java Spring IOC 源码浅析(refresh 方法)

日常记录

正文 好久没写博客了,最近看了下 Spring IOC 相关的内容,之前一直知道个大概,但是没有仔细的了解过相关的内容,最近有机会,了解了一下相关的内容, 主要研究了下 AbstractApplicationContex 里面的 refresh 相关的代码,这里包含了整个 bean 的创建过程,本文就会针对 refresh 里面的代码解析一遍,主要会解析重点部分, 下面就看下整个 refr...

Java 内部类日常记录

日常记录

正文 记录一:使用初始化块初始化会导致用的是新的类 new HashMap() 上面就是一个初始化的写法,也叫双括号初始化,对于第一个括号很容易理解,就是创建了一个匿名的内部类,对于第二个括号,实际上就是类内部的初始化块,我用下面的写法可能更容易看懂 // 匿名内部类重写 put 方法 HashMap<String, String> hashMap ...

Java CountDownLatch && CyclicBarrier原理解析

了解 CountDownLatch 以及 CyclicBarrier

正文 CountDownLatch 和 CyclicBarrier 也是第一次接触,当然,这两个类也比较简单,源码量非常少(除去 AQS),先来看看这两个类怎么用吧 CountDownLatch 简单用法 - 控制线程一起执行 public static void main(String[] args) throws InterruptedException { ...

Java ReentrantReadWriteLock 实现 AQS 分析

了解 AQS 中的共享模式以及读写锁

正文 今天主要来看一下 Java 中的读写锁 ReentrantReadWriteLock,读写锁也是可重入锁的一种,可以看出,其实现也是依托于 AQS 来实现的,可以说 AQS 就是并发包的核心知识,了解了 AQS,并发包中一半的内容也就很容易了解了 读写锁在平时我是用的不多,可能受限于经验以及经历,读写锁的了解我是直接来源于其他博客以及对于源码的阅读,我主要会以源码的角度分析一下读写...

Java Semaphore 实现 AQS 分析

了解 AQS 中的共享模式以及信号量

正文 之前的博客里面已经介绍过 AQS 相关的知识了,之前的 AQS 主要围绕着独占的模式来展开的,今天介绍一种信号量 Semaphore,这个是通过 AQS 中的共享模式实现的 写一个两个队伍排队买票的例子 public class SemaphareTest { private volatile AtomicInteger tickets = new AtomicInteg...

Java Spliterator 以及 Iterator 分析,基于 ArrayList

了解 ArrayList 中的 ArrayListSpliterator 和 Iterator

正文 我们在使用集合的时候,经常会使用到集合中的迭代器,今天我们就来讲讲集合中的迭代器。 在 ArrayList 源码中,有一个方法叫做 iterator,这个方法会给我们返回一个迭代器,我们就可以使用这个迭代器对集合中的元素进行访问。 { List<String> list = new ArrayList(); list.add("one"); l...

Java LinkedList 源码分析

了解 LinkedList 源码及其工作原理

正文 上一篇博客看了下 ArrayList, 这次来看一下 LinkedList,集合中,LinkedList 是一个比较重要的常用集合,LinkedList 实现了 List 接口,也实现了 Deque 接口,所以 LinkedList 既可以作为正常的 list 类使用, 也可以作为双向队列使用,同时还能作为栈使用。 LinkedList 内部实现是一个双向的链表,所以在初始化 Li...

Java ArrayList 源码分析

了解 ArrayList 源码及其工作原理

正文 ArrayList 在我们的代码中相信一定是很常见的,今天就来看一看 ArrayList 的源码 (不包含 Spliterator 相关的, Spliterator 会在后面单独讲一下),这次博客主要内容直接写在代码注释里面 来看一下 ArrayList 的相关变量 private static final long serialVersionUID = 86834525811...