1. instanceof关键词 转正
Object obj = "kuaidi100";
if(obj instanceof String str){
//直接使用str
}
2. Records 转正
record Person(int age, String name, Person friend) implements Runnable {
// record类是final类,继承自Record类,因此不能有子类,不能是抽象的,也不能继承其他父类
// 但是可以实现接口
// record类自动帮我们实现全参构造方法、hashcode()方法、equals()方法和toString()方法
// int a; // record类不能有实例字段
public static int sCount = 0;
// record类可以有静态字段、实例方法、静态方法,覆写实例字段的get()方法
// 但是不能对实例字段重新赋值,因为它们是final字段
public Person() {
// record类的构造方法必须调用包含全部参数的构造方法
this(0, "", null);
}
public static void test() {}
public void showName() {
System.out.println(name);
}
@Override
public void run() {
}
}
3. Vector API
- 现在JDK16也可以做到了,我们一起来看看,先是传统写法:
- 如果我们希望两个数组的数字相乘,则只能进行每个元素的遍历。现在的写法:
我们构建两个Vector变量,直接调用Vector类的mul方法即可。
fromArray中有三个参数,第一个是向量的长度,第二是原数组,第三个是偏移量。因为一个int有4个字节,所以这里我们使用SPECIES_128。
4. Sealed Classes
Sealed Classes是在JDK15中引入的概念,它表示某个类允许哪些类来继承它:
final表示Seal2不能再被继承了。non-sealed 表示可以允许任何类继承。