跳转至

A. Java新特性一览

A. Java新特性一览

更新日期:2022-11-30


1. 概述

自Java9之后,Java每半年更新一个版本,版本数升的很快。要去了解每一个版本的变更点是很麻烦的,所以只对长期版本(LTS版本)来进行了解是个不错的选择。

2. 特性一览

版本 新特性 备考
Java8 Lambda表达式 Java开始支持函数式编程
函数式接口
只有一个函数的接口
例:Runnable接口
方法引用 用法是一个谜,不是很直观,感觉与Java代码格格不入
例:Car::new
接口的默认方法 为了在给接口添加新函数时能够向后兼容,与接口的设计原则相矛盾(不是很看好此功能)
流Stream 亮点功能,能够很大程度上简化代码,编写代码时体验提升巨大
Optional类 可以简化null判断的书写体验
新的日期时间 API 更好的设计,以前的日期时间类非常的混乱
内置Base64支持 不再需要第三方库,从此Java内置对Base64相关处理的支持
新的脚本引擎 用来嵌入脚本语言,支持的脚本语言很多
Java11 变量类型推断 也就是var,在很多语言中都是老朋友了
使用var使我们少写样板代码,代码干净了很多,可读性也更高
HttpClient 支持HTTP/2,不明觉厉
一系列工具类增强 Collection增加了of与copyof这两个实用的方法
加强了Stream,Optional,String这几个类
InputStream可以直通OutputStream
模块化开发 Java9中引入的重量级功能,但是易与项目管理中的概念相混淆
交互式编程jshell 可以直接在控制台中执行代码了
直接执行单个java文件 不用编译,直接执行,使Java可以作为脚本语言来使用
完全支持Linux容器(包括docker) 一个不太懂的话题
Unicode10支持 增加了字符数量,以及支持emoji表情符号
新加密算法 到底什么时候用呢
低消耗的堆栈记录分析工具 解决内存和性能问题时会有用
黑匣子 记录一段时间内的程序运行状况,分析性能瓶颈必备,在以前的版本中是付费功能
新的垃圾回收器 多多益善,新的垃圾回收器很适合游戏程序
Java17 多行字符串定义 多行字符串写起来更简洁,非常实用的功能,早就应该加入的功能
Switch加强 增强这种基础功能的威力是很大的
Switch每个条件加处理可以写成一行,从此更加简洁
Records(记录) 如何使用还需要探索
密封类 如何使用还需要探索
instanceof增强 几乎没用过
NullPointerException增强 神级加强,可以直接打印出空对象是哪一个,不用去猜去调试了
精简数字格式支持 可以将数字转为1K,100K这样的格式
日期时间API增强 添加了日周期支持,触及到了知识盲区
Stream增强 Stream能直接toList()了,期待已久的功能