1.10
局部变量
可以使用var作为局部变量类型推断标识符。此符号仅用于局部变量,增强for循环的索引,以及传统for循环的本地变量。
示例
var str = "ABC"; //根据推断为 字符串类型
var list = new ArrayList<String>(); // 推断 ArrayList<String>
var stream = list.stream(); // 推断 Stream<String>`
并行Full GC的G1
通过并行Full GC,改善G1的延迟
- G1设计目的是避免Full收集,但是当集合不能足够快的回收内存时,就会出现Full GC
- jdk10使用并行化标记-清除-压缩算法,并使用Young和mixed收集器相同的线程数量
- 线程的数量可以由-XX:ParallelGCThreads控制
1.9
模块化JDK源码
允许开发者自定义组件
新工具
提供了repl工具叫JShell,可以在命令行或者idea终端运行
核心库新内容
简化的进程API
新增ProcessHandle类
- 提供本地进程的id,参数,命令,父进程,子进程等
- 还可以监控进程的活力和破坏线程
可操作的发布-订阅框架
- 主要由Flow类提供
以及对CompletableFuture API增强
集合类新增of方法
创建集合实例更容易
Set<String> alphabet = Set.of("a", "b", "c");
List<String> strings = List.of("first", "second");
Try-With-Resources的改变
jdk1.7引入这个,为了减少finally语句块的编写。1.9进行了改进