Java 7
- Java SE 7 (Dolphin)
- Released: 2011-07-28
- Major features: Project Coin, NIO.2, Fork/Join.
Features
Language (Project Coin)
-
Switch on String
switch语句支持字符串类型。
switch (day) {
case "Monday": break;
// ...
} -
Try-with-resources
- 自动资源管理,实现了
AutoCloseable接口的资源会自动关闭。
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
} - 自动资源管理,实现了
-
Diamond Operator
- 泛型示例推断。
List<String> list = new ArrayList<>(); // `<>` -
Multi-catch
- 捕获多种类型的异常。
try {
// ...
} catch (IOException | SQLException ex) {
logger.log(ex);
} -
Numeric Literals with Underscores
- 数字字面量支持下划线分割,提高可读性。
int million = 1_000_000; -
Binary Literals
- 二进制字面量前缀
0b。
int binary = 0b1001_1001; - 二进制字面量前缀
Library
-
NIO.2 (JSR 203)
- 新的 I/O API,位于
java.nio.file包。 - 核心类:
Path,Paths,Files。 - 支持文件系统操作、文件属性访问、异步 I/O (AsynchronousFileChannel)。
WatchService用于监控文件系统变化。
- 新的 I/O API,位于
-
Fork/Join Framework
- 用于并行任务执行的框架 (
java.util.concurrent.ForkJoinPool)。 - 核心类:
ForkJoinTask,RecursiveTask,RecursiveAction。
- 用于并行任务执行的框架 (
-
Objects Class
java.util.Objects工具类,提供equals,hashCode,requireNonNull等静态方法。
JVM
- InvokeDynamic (JSR 292)
- 新的字节码指令
invokedynamic,主要用于支持动态语言在 JVM 上运行。 - 后续也是 Java 8 Lambda 的基础。
- 新的字节码指令