ZibuのHippocampus

人生天地间,忽如远行客

在SpringBoot启动类源码分析一文中,我们已经看到了SpringBoot的启动过程。

首先创建SpringApplication对象,获取配置文件中定义的initializer和listener

再执行run方法,初始化ApplicationContext,再执行initializer方法,设置环境变量,

refresh Spring容器,再执行AfterRefresh方法。

其中refresh方法至关重要,本文将进入该方法,一起来看看它都做了什么事情。

阅读全文 »

synchronized 是 Java 中的关键字,是利用锁机制来实现同步的。

本文将介绍synchronized锁的相关概念,辅以充足的代码示例。深入浅出介绍synchronized锁的使用。

最后研究其实现原理。加深对synchronized机制的理解


阅读全文 »

HashMap通过数组+链表(RBTree)保存数据,默认初始数组长度16,当数组元素2倍扩容。在链表长度大于8时,将链表转为RBTree。通过 Hash Key 的方式,来判断数据所处数组位置,再通过

HashMap非线程安全,可以用Collection的synchronized方法来使HashMap线程安全,或者使用ConcurrentHashMap

Map m = Collections.synchronizedMap(new HashMap(…));

阅读全文 »

容器类中List是使用最为广泛的,主要有ArrayList,LinkedList两个实现类。本文将从源码入手,直接分析ArrayList,LinkedList的实现,扩容机制等。

了解所使用的类库,才能更好的使用它。——《Effective Java》第47条。

阅读全文 »
0%