各Java版本新特性

JAVA 9
1、接口新增了私有方法、私有静态方法,用于接口内重复代码封装利用;
2、增强了try-resource,可直接在try(Resource resource){} 中管理资源;
3、JShell,交互式命令行,就是打开一个交互界面,在界面上写一些代码,然后回车直接运行;

JAVA 10
1、局部变量的类型推断 var关键字。只能使用在:局部变量初始化、for循环内部索引变量、传统的for循环声明变量;
2、Collectors收集器,新增4个方法:
toUnmodifiableList()、toUnmodifiableSet()、toUnmodifiableMap(Function, Function)、toUnmodifiableMap(Function, Function, BinaryOperator)、
这四个新方法都返回 Collectors ,将输入元素聚集到适当的不可修改的集合中。

JAVA 11(LTS)
1、java.net.http 升级。支持【异步非阻塞】请求;
2、在 Lambda 表达式中使用局部变量类型 var。使用限制:
只能用于局部变量上、声明时必须初始化、不能用作方法参数、不能在 Lambda 表达式中使用;
3、低开销的 Heap Profiling。使用该工具可以得到问题代码的位置;
4、ZGC:可伸缩低延迟垃圾收集器。必须显示指定使用:
-XX:+ UnlockExperimentalVMOptions -XX:+ UseZGC -Xmx10g
-Xmx10g是必须要设置一个最大堆的大小

JAVA 12
1、Switch 表达式写法优化,标签右侧的代码段只能是表达式、代码块或 throw 语句;
int dayNumber = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY                -> 7;
    case THURSDAY, SATURDAY     -> 8;
    case WEDNESDAY              -> 9;
    default                      -> throw new IllegalStateException("Huh? " + day);
}
2、Shenandoah是一种垃圾收集(GC)算法,旨在保证低延迟(10 - 500 ms的下限);

JAVA 13
1、Java Socket API(java.net.ServerSocket 和 java.net.Socket)重构;
2、Switch 表达式扩展(预览功能),可将JAVA 12 的 Switch 语句进行如下改写:
int dayNumber = switch (day) {
    case MONDAY, FRIDAY, SUNDAY: 
        yield 6;
    case TUESDAY:
        yield 7;
    case THURSDAY, SATURDAY:
        yield 8;
    case WEDNESDAY:
        yield 9;
    default:
        yield -1;
}
3、文本块(预览功能),文本块以三重双引号开头,并以同样的以三重双引号结尾终止,它们之间的任何内容都被解释为字符串的一部分,包括换行符。

JAVA 14(LTS)
待补充。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值