Java

Java

Java技术概要 #

记录了Java相关的知识,包括了面向对象基础,集合框架、并发和JVM等相关内容。

Java基础 #

1 面向对象 #

Java基础知识容易忽视、混淆的点,简单做一些记录。另外还有一些不常用的Java API,试着优雅的使用它们。

2 集合框架 #

集合框架,开发中使用最多的Java工具类,不管是List,还是Hash还是Map,随处可见,然而要用好它们,可能需要更好地了解它们...

并发 #

并发,是Java的洼地,没有路线指引,只会越陷越深然后迷茫地翻过篇去。这里讨论了和并发相关的的重要概念以及Java提供的并发组件。有些部分深入源码,剖析了它们的实现逻辑,深入理解Java对并发的控制。

本部分内容由浅入深,首先讨论了线程的概念,生命周期以及另一个重要的概念——任务。以及为什么需要并发,并发过程中会遇到的共享资源的问题。接下来,阐述了并发过程中常遇到的问题——死锁(Dead Lock)

接下来,开始讨论执行器和线程池。执行器可以看作执行任务的trigger,Java提供了不同类型的执行器和线程池,以应对不同的应用场景,各线程池的线程创建及销毁条件都有所区别,了解线程池中线程的创建、入队、销毁、拒绝机制,对于理解线程池以及Java并发有很大的帮助。此外,Java还提供了其他一些重要的并发组件,比如阻塞队列倒计时门栅信号量等等,一并作介绍。

最后,简单地讨论了Java的内存模型,同时讨论了volatile这个曾经饱受争议的关键字,介绍了Java虚拟机执行程序的指令重排

JVM #

关于Java JVM的讨论内容相对较少,周志明《深入理解Java虚拟机》尚未完全读完,也只是看了前面几个章节,所掌握的内容是寥寥无几。相信这一部分的内容,会越来越多。目前尚且只简单讨论了JVM的内存分区以及Java-GC。