亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 10 新增 70+ API 与特性详解

核心 API 增强

1. Optional.orElseThrow()

java.util.Optional 新增 orElseThrow() 无参重载,作为 get() 的首选替代:

// 旧:get() 抛出 NoSuchElementException,语义不明
String value = optional.get();

// 新:明确表达“为空则抛出异常”意图
String value = optional.orElseThrow();  // 抛出 NoSuchElementException

2. 不可变集合工厂方法

List、Set、Map 新增 copyOf() 静态方法,从现有集合创建不可变副本:

List<String> modifiable = new ArrayList<>(List.of("A", "B", "C"));
List<String> unmodifiable = List.copyOf(modifiable);  // 不可变副本
unmodifiable.add("D");  // 抛出 UnsupportedOperationException

Collectors 新增三个收集器直接产出不可变集合:

List<String> unmodList = stream.collect(Collectors.toUnmodifiableList());
Set<String> unmodSet = stream.collect(Collectors.toUnmodifiableSet());
Map<K, V> unmodMap = stream.collect(Collectors.toUnmodifiableMap(k -> k, v -> v));

3. 禁用 JRE 最后使用追踪

新增 JVM 标志 -XX:-JreLastUsageTracking(或 jdk.disableLastUsageTracking),禁用 JRE 使用统计上报。

4. JMX 密码哈希化

jmxremote.password 文件中的明文密码现由 JMX Agent 自动以 SHA3-512 哈希覆盖,增强安全性。

5. Javadoc 增强

完整示例:不可变集合操作

import java.util.List;
import java.util.stream.Collectors;

public class Tester {
    public static void main(String[] args) {
        var ids = List.of(1, 2, 3, 4, 5);

        try {
            List<Integer> copyOfIds = List.copyOf(ids);
            copyOfIds.add(6);  // 运行时异常
        } catch (UnsupportedOperationException e) {
            System.out.println("Collection is not modifiable.");
        }

        try {
            List<Integer> evenNumbers = ids.stream()
                    .filter(i -> i % 2 == 0)
                    .collect(Collectors.toUnmodifiableList());
            evenNumbers.add(6);  // 运行时异常
        } catch (UnsupportedOperationException e) {
            System.out.println("Collection is not modifiable.");
        }
    }
}

输出:

Collection is not modifiable.
Collection is not modifiable.

其他值得关注的增强

java

  1. 精通 Java 运算符:类型、语法与实战示例
  2. Java 注释:类型、用法与最佳实践
  3. 精通 Java 增强 for 循环:语法、示例与最佳实践
  4. 精通 Java 字符串:创建、方法与最佳实践
  5. 精通 Java 接口:概念、实现与最佳实践
  6. 精通 Java 匿名内部类:定义、语法与实战示例
  7. 精通 Java Try-With-Resources:自动资源管理详解
  8. Java 注解详解:类型、放置位置与实战示例
  9. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  10. 掌握 Java 自动装箱与拆箱:实战示例与最佳实践
  11. Java 10 新增 70+ API 与特性详解
  12. Java 10 移除的废弃 API、特性与选项清单