# java17新特性

# Sealed密封类

Sealed Classes(密封类) 特性,它的核心作用是精确控制类的继承关系,解决了传统 final 类(完全不能继承)和普通类(任意类都能继承)的中间态问题,让类的可继承范围变得可控。

# 密封类核心语法

1.定义密封类,使用 sealed 关键字修饰类,通过 permits 明确指定允许继承的子类列表

public sealed class SealedFather permits 
    SealedSon,SealedSecSOn,SealedThirdSon {}
1
2

2.定义密封类的子类

子类必须显式声明自己的 “继承模式”,可选 3 种:

  • final:完全禁止再继承(最常用);
  • sealed:继续作为密封类,指定新的子类;
  • non-sealed:解除密封,允许任意类继承。
public final class SealedSon extends SealedFather {}
1
public sealed class SealedSecSOn extends SealedFather permits 
     SealedGrandSon {}
1
2
public non-sealed class SealedThirdSon extends SealedFather {}
1

# 【了解】新的随机数生成器

Java 17 引入了全新的随机数生成器 API,提供了更优的性能和更多的算法选择:

// 传统的随机数
Random oldRandom = new Random();
int oldValue = oldRandom.nextInt(100);

// 新的随机数生成器
RandomGenerator generator = RandomGenerator.of("L32X64MixRandom");
int newValue = generator.nextInt(100);
1
2
3
4
5
6
7
最近更新: 9/19/2026, 1:27:08 PM
编程NOTE   |