Java 17 到 Java 24,虚拟线程重塑并发、模式匹配全面展开、Scoped Values 补全并发工具链。Java 正在变成一门简洁而富有表达力的现代语言。本文用代码逐一展示这些改变游戏规则的特性。
Java 9 到 Java 16,八年八版本。Oracle 实行六个月一个版本的快速迭代后,每个版本小而精。本文用代码逐一展示:模块化系统、var、Switch 表达式、文本块、Records、instanceof 模式匹配、Sealed Classes,以及隐藏的宝石。
从 1996 年的 Java 1.0 到 2002 年的 Java 1.4,这六年是 Java 语言的奠基时期。本文用代码逐一展示每个版本引入的核心特性,从 applet 到断言,从 Collection 到 NIO。
Java 5 到 Java 8 是 Java 最辉煌的十年。泛型、Lambda、Stream 三大范式变革让 Java 从"啰嗦"走向"优雅"。本文用代码逐一展示这十年中每一个改变编程方式的关键特性。
代理模式是常用的结构型设计模式之一,当直接访问某些对象存在问题时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,如远程代理、虚拟代理、保护代理等,它们应用于不同的场合,满足用户的不同需求。
在系统中如果存在多个对象可以处理同一请求,可以通过职责链模式将这些处理请求的对象连成一条链,让请求沿着该链进行传递。如果链上的对象可以处理该请求则进行处理,否则将请求转发给下家处理。职责链模式可以将请求的发送者和接收者解耦,客户端无须关心请求的处理细节和传递过程,只需要将请求提交给职责链即可。
命令模式是常用的行为型设计模式之一,它将请求发送者与请求接收者解耦,请求发送者通过命令对象来间接引用接收者,使得系统具有更好的灵活性,可以在不修改现有系统源代码的情况下将相同的发送者对应不同的接收者,也可以将多个命令对象组合成宏命令,还可以在命令类中提供用来撤销请求的方法。
当系统中存在大量相同或者相似的对象时,享元模式是一种较好的解决方案,它通过共享技术实现相同或相似的细粒度对象的复用,从而节约了内存空间。在享元模式中提供了一个享元池用于存储已经创建好的享元对象,并通过享元工厂类将享元对象提供给客户端使用。
外观模式是一种使用频率非常高的设计模式,它通过引入一个外观角色来简化客户端与子系统之间的操作,为复杂的子系统调用提供一个统一的入口,使子系统与客户端的耦合度降低,且客户端调用非常方便。