Java
Java技术概要 #
记录了Java相关的知识,包括了面向对象基础,集合框架、并发和JVM等相关内容。
Java基础 #
并发 #
并发,是Java的洼地,没有路线指引,只会越陷越深然后迷茫地翻过篇去。这里讨论了和并发相关的的重要概念以及Java提供的并发组件。有些部分深入源码,剖析了它们的实现逻辑,深入理解Java对并发的控制。
本部分内容由浅入深,首先讨论了线程的概念,生命周期以及另一个重要的概念——任务。以及为什么需要并发,并发过程中会遇到的共享资源的问题。接下来,阐述了并发过程中常遇到的问题——死锁(Dead Lock)。
接下来,开始讨论执行器和线程池。执行器可以看作执行任务的trigger,Java提供了不同类型的执行器和线程池,以应对不同的应用场景,各线程池的线程创建及销毁条件都有所区别,了解线程池中线程的创建、入队、销毁、拒绝机制,对于理解线程池以及Java并发有很大的帮助。此外,Java还提供了其他一些重要的并发组件,比如阻塞队列,倒计时门栅,信号量等等,一并作介绍。
最后,简单地讨论了Java的内存模型,同时讨论了volatile
这个曾经饱受争议的关键字,介绍了Java虚拟机执行程序的指令重排。
JVM #
关于Java JVM的讨论内容相对较少,周志明《深入理解Java虚拟机》尚未完全读完,也只是看了前面几个章节,所掌握的内容是寥寥无几。相信这一部分的内容,会越来越多。目前尚且只简单讨论了JVM的内存分区以及Java-GC。