Zhao Zhengyang

《Java核心技术》笔记 卷II 第9章 Java平台模块系统

Java 9引入了Java平台模块系统。它是为了模块化大型Java代码库而设计的。如果愿意,也可以使用这个系统来模块化自己的应用。 本章将展示如何声明和使用Java平台模块。还将介绍如何迁移你的应用程序,使其与Java平台和第三方模块一起工作。 9.1 模块概念 面对规模巨大、盘根错节的代码,Java平台设计者认为他们需要一种能够提供更多控制的结构化机制。他们发现现有的模块系统(例如OS...

《Java核心技术》笔记 卷II 第6章 日期和时间API

Java 1.0有一个Date类,事后证明它过于简单了。当Java 1.1引入Calendar类之后,Date类的大部分方法就被弃用了。但是Calendar的API并不出色,它的实例是可变的,并且没有处理闰秒之类的问题。第三次升级是Java 8中引入的java.time API,它弥补了过去的缺陷。在本章中,你将了解是什么使时间计算如此烦人,以及日期和时间API是如何解决这些问题的。 6....

《Java核心技术》笔记 卷II 第1章 流

与集合相比,流(stream)提供了一种可以在更高的概念级别指定计算的数据视图。通过使用流,只需指定想要做什么,而不是如何做。 本章将介绍如何使用Java的流库,它是在Java 8中引入的,用来以 “what, not how” 的方式处理集合。 1.1 从迭代到流操作 在处理集合时,通常会迭代它的元素,并对每个元素执行某项操作。例如,假设想统计一本书中的长单词数量: var cont...

《Java核心技术》笔记 卷I 第12章 并发

多任务(multitasking)是操作系统可以(看起来)在同一时刻运行多个程序的能力。例如,在编辑邮件的同时可以打印文件。操作系统会为每个进程分配CPU时间片,给人并行处理的感觉。 多线程在更低一层扩展了多任务的概念:一个程序看起来在同时执行多个任务。每个任务在一个线程(thread)中执行,线程是控制线程(thread of control)的简称。可以同时运行多个线程的程序称为多线程...