java_ConcurrentHashMap源码解析
从源码角度分析ConcurrentHashMap是如何实现线程安全的
从源码角度分析ConcurrentHashMap是如何实现线程安全的
本文以AnnotationConfigEmbeddedWebApplicationContext为例,使用Idea的类图插件,查看该类的继承图,并对此进行分析。
在SpringBoot启动类源码分析一文中,我们已经看到了SpringBoot的启动过程。
首先创建SpringApplication对象,获取配置文件中定义的initializer和listener
再执行run方法,初始化ApplicationContext,再执行initializer方法,设置环境变量,
refresh Spring容器,再执行AfterRefresh方法。
其中refresh方法至关重要,本文将进入该方法,一起来看看它都做了什么事情。
本文从SpringBoot启动类进入分析,看看SpringBoot项目启动时都进行了哪些操作
版本:SpringBoot 1.5.8
正在施工🚧
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条。
使用nohup启动程序,在连接断开后,程序不挂断继续运行。
nohup ${Command} >${fileName} 2>&1 &