作为一门很受欢迎的编程语言,Java语言在经历了20多年的发展后,已然成为开发者首选的“利器”。之所以能保持在编程界不断受到开发者的热捧,一个非常重要的原因就是Java自身不断在进化,不管是从其他语言中汲取经验,还是从实际应用中挖掘新的需求,Java不断增强的新特性,简化致力于应用的开发,让应用运行更快、更稳定。
接下来,让我们一起看一下从Java 8以来各个版本发布的新特性。
Java 8包含了如下新特性:
· Lambdas表达式与Functional接口
· 接口的默认与静态方法
· 新增方法的调用方式
· 优化了HashMap以及ConcurrentHashMap
· 方法引用
· 重复注解
· 更好的类型推测机制
· 扩展注解的支持
· Optional类
· Stream API
· Date/Time API(JSR 310)
· 并行(parallel)数组
· 并发(Concurrency)改进
· 新增Nashorn
Java 9包含了如下新特性:
· 模块化系统
· Linking
· JShell
· 改进的Javadoc
· 集合工厂方法
· 改进的Stream API
· 私有接口方法
· HTTP/2
· 多版本兼容JAR
Java 10包含了如下新特性:
· 局部变量类型推断
· GC改进和内存管理
· 线程本地握手
· 备用内存设备上的堆分配
· 支持Unicode
· 基于Java的实验性JIT编译器
· 根证书
· 根证书颁发认证
· 删除javah工具
Java 11包含了如下新特性:
· 字符串加强
· 集合加强
· Stream加强
· HTTP Client API
· 运行源代码
· 支持Unicode 10
· 新增JShell
· 新增ZGC垃圾处理器
· 新增Epsilon垃圾处理器
Java 12包含了如下新特性:
· 短停顿时间的GC——Shenandoah
· 微基准测试套件
· Switch表达式增强
· 紧凑数字格式
· JVM常量API
· 保留一个AArch64实现
· 默认类数据共享归档文件
· 可中止的G1 Mixed GC
· G1及时返回未使用的已分配内存
Java 13包含了如下新特性:
· 动态类数据共享归档
· 增强ZGC以将未使用的堆内存返回给操作系统
· Socket API的重新实现
· Switch表达式增强
· 文本块
上面列出的只是部分特性,后续章节还将继续探讨这些特性的完整使用方式。