文章目录

heardfate

标签: JDK (8)

Java 8的新特性 有更新!

Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and ConcurrencyJava 8 Date Time API Tutorial : LocalDateTimeAbstract Class Versus Interface in the JDK 8 Era。本文还参考了一些其他资料,例如:15 Must Read Java 8 TutorialsThe Dark Side of Java 8。本文综合了上述资料,整理成一份关于Java 8新特性的参考教材,希望你有所收获。

Java9的新特性

甲骨文发布了具有丰富新特性的Java9。它包括对Java编程、JVM、工具和库的各种升级。

  • 平台模块系统(Jigsaw项目)
  • 接口私有方法
  • Try-With Resources
  • 匿名类
  • @SafeVarargs注释
  • 集合工厂方法
  • Process API改进
  • 新版本字符串方案
  • JShell:javashell(REPL)
  • 控制面板
  • 流API改进
  • 针对Microsoft windows及更多应用程序的安装程序增强功能

Java10新特性

Java10它号称有109项新特性,包含12个JEP。
1:局部变量的类型推断
2:GC改进和内存管理
3:线程本地握手
4:备用内存设备上的堆分配
5:其他Unicode语言 - 标记扩展
6:基于Java的实验性JIT编译器
7:开源根证书
8:根证书颁发认证(CA)
9:将JDK生态整合单个存储库
10:删除工具javah

Java11新特性 有更新!

Java 11的11个新功能
1. Lambda 表达式的类型推断
2. String 方法新增
3. 简化启动单个源代码文件的方法
4. 标准的HTTP客户端
5. 默认的 toArray(IntFunction)
6. Epsilon垃圾收集器
7. 低开销堆分析
8. 嵌套的访问控制
9. ZGC(Z Garbage Collector)
10. 编译器线程的动态分配
11. 新文件方法

Java12新特性

Java 12 带来了一系列新特性:

| 189 | Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的 GC |
| 230 | Microbenchmark Suite 微基准测试套件 |
| 325 | Switch Expressions (Preview) Switch 表达式 |
| 334 | JVM Constants API JVM 常量 API |
| 340 | One AArch64 Port, Not Two 只保留一个 AArch64 实现 |
| 341 | Default CDS Archives 默认类数据共享归档文件 |
| 344 | Abortable Mixed Collections for G1 可中止的 G1 Mixed GC |
| 346 | Promptly Return Unused Committed Memory from G1 G1 及时返回未使用的已分配内存 |

JAVA13新特性 有更新!

Java13主要新增了如下特性

  • 350: Dynamic CDS Archives
    • 351: ZGC: Uncommit Unused Memory
    • 353: Reimplement the Legacy Socket API
    • 354: Switch Expressions (Preview)
    • 355: Text Blocks (Preview)
      语法层面,改进了Switch Expressions,新增了Text Blocks,二者皆处于Preview状态;API层面主要使用NioSocketImpl来替换JDK1.0的PlainSocketImpl
      GC层面则改进了ZGC,以支持Uncommit Unused Memory

java14新特性

在JDK14中新增了以下16个新特性:

  • 305: instanceof的模式匹配 (预览)
  • 343: 打包工具 (Incubator)
  • 345: G1的NUMA内存分配优化
  • 349: JFR事件流
  • 352: 非原子性的字节缓冲区映射
  • 358: 友好的空指针异常
  • 359: Records (预览)
  • 361: Switch表达式 (标准)
  • 362: 弃用Solaris和SPARC端口
  • 363: 移除CMS(Concurrent Mark Sweep)垃圾收集器
  • 364: macOS系统上的ZGC
  • 365: Windows系统上的ZGC
  • 366: 弃用ParallelScavenge + SerialOld GC组合
  • 367: 移除Pack200 Tools和API
  • 368: 文本块 (第二个预览版)
  • 370: 外部存储器API (Incubator)

JAVA15新特性

JDK 15 新特性一览表:

ID JEP Feature
1 339 Edwards-Curve Digital Signature Algorithm (EdDSA)
2 360 Sealed Classes (Preview)
3 371 Hidden Classes
4 372 Remove the Nashorn JavaScript Engine
5 373 Reimplement the Legacy DatagramSocket API
6 374 Disable and Deprecate Biased Locking
7 375 Pattern Matching for instanceof (Second Preview)
8 377 ZGC: A Scalable Low-Latency Garbage Collector
9 378 Text Blocks
10 379 Shenandoah: A Low-Pause-Time Garbage Collector
11 381 Remove the Solaris and SPARC Ports
12 383 Foreign-Memory Access API (Second Incubator)
13 384 Records (Second Preview)
14 385 Deprecate RMI Activation for Removal