JDK10新特性
大约 2 分钟JAVAJAVA
局部变量类型推断var
JDK10 可以使⽤var作为局部变量类型推断标识符。 Local-Variable Type Inference(局部变量类型推断),顾名思义只能⽤做为局部变量 。
注意:
- 仅适⽤于局部变量增强for循环的索引,传统for循环局部变量
- 不能使⽤于⽅法形参、构造函数形参、⽅法返回类型或任何其他类型的变量声明
- 标识符var不是关键字,⽽是⼀个保留类型名称,⽽且不⽀持类或接⼝叫var,也不符合命名规范
package jdk10;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.stream.Stream;
/**
* @author by xw
* @Description JDK10新特性 之 var
*/
public class VarDemo {
public static void main(String[] args) {
//根据推断为 字符串类型
var strVar = "springboot";
// true
System.out.println(strVar instanceof String);
//根据10L 推断long 类型
var longVar = 10L;
//根据 true推断 boolean 类型
var flag = true;
//var flag = Boolean.valueOf("true");
//System.out.println(flag instanceof Boolean);
// 推断 ArrayList<String>
var listVar = new ArrayList<String>();
// true
System.out.println(listVar instanceof ArrayList);
// 推断 Stream<String>
var streamVar = Stream.of("aa", "bb", "cc");
//true
System.out.println(streamVar instanceof Stream);
if(flag){
System.out.println("这个是 flag 变量,值为true");
}
for (var i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
并行、完整的 G1 垃圾收集器
G1垃圾收集器的设计目的是避免,但是当并发收集无法以足够快的速度回收内存时,就会发生回退的完全 GC旧的 G1 FULL GC 实现使用单线程标记-扫描-压缩算法。 在JDK10中,FULL GC 被并行化。
其他
将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。
应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。
线程本地握手,不执行全局 VM 安全点也能对线程执行回调,同时实现单线程停止回调。
JDK 提供了一组默认证书,开源 Java SE 的 CA程序,对开发人员更具吸引力。