Java_SE之String类及其源代码剖析

字符串特性

  1. String​​ 是常量,其对象一旦创建就无法改变。
  2. 当使用 +​​​ 拼接字符串时,会生成新的 String​​​ 对象,而不是向原有的 String​​​ 对象追加内容。

查看字节码

javap

javap -c com.terwergreen.str.StringNewTest

Terwer...大约 3 分钟后端开发JavaSE对象字符串字节特性常量string
Java_19

Java 19 在 2022 年 9 月 20 日正式发布,Java 19 不是一个长期支持版本,直到 2023 年 3 月它将被 JDK 20 取代,这次更新共带来 7 个新功能。

主要特性

Java 19 带来的 7 个新特性:

JEP 描述
405 Record 模式匹配 (Preview)
425 虚拟线程 (预览)
427 Switch 模式匹配 (三次预览)
422 Linux/RISC-V Port
426 Vector API (四次孵化)
424 外部函数 & 内存 API (Preview)
428 Structured Concurrency (Incubator)

Terwer...大约 1 分钟后端开发JavaSEJava语言新特性下载带来特性模式匹配预览javajdkjdk19java19javase
Java_16

Java 16 在 2021 年 3 月 16 日正式发布,不是长久支持版本,这次更新没有带来很多语法上的改动,但是也带来了不少新的实用功能。

主要特性

Java 16 随附的 17 个 JEP 分为六个不同类别:

新语言特性

JEP 394,适用于 instanceof 的模式匹配

模式匹配(Pattern Matching)最早在 Java 14 中作为预览特性引入,在 Java 15 中还是预览特性。模式匹配通过对 instacneof 运算符进行模式匹配来增强 Java 编程语言。

模式匹配使程序中的通用逻辑(即从对象中有条件地提取组件)得以更简洁、更安全地表示。


Terwer...大约 8 分钟后端开发JavaSEJava语言新特性特性使用支持提供javajdkjdk16java16javase可以
Java_13

JDK 13 于 2019 年 9 月 17 日发布。

主要特性

该版本包含以下新特性以及很多的强化和很多的漏洞修补。[272]

  • JEP-350: 动态 CDS 归档[273]
  • JEP-351: ZGC: 取消提交未使用存储器[274]
  • JEP-353: 重新实现旧版 Socket API[275]
  • JEP-354: Switch 表达式(预览阶段)[276]
  • JEP-355: 文本框(预览阶段)[277]

Terwer...大约 1 分钟后端开发JavaSEJava语言新特性修补版本漏洞发布特性javajdkjava13jdk13javase
Java_12

JDK 12 于 2019 年 3 月 19 日发布。

主要特性

该版本包含较多新特性,例如:

  • JEP 189:Shenandoah:一个实验性的低延迟垃圾收集器[262]
  • JEP 230:细粒度性能评审包[263]
  • JEP 325:Switch 表达式(预览阶段)[264]
  • JEP 334:JVM Constants API[265]
  • JEP 340:仅保留一个 AArch64 平台的移植[266]
  • JEP 341:默认类数据共享归档[267]
  • JEP 344:针对 G1,提供可中止的混合垃圾收集[268]
  • JEP 346:针对 G1,及时释放已申请但未使用的内存[269]

Terwer...大约 2 分钟后端开发JavaSEJava语言新特性版本发布特性垃圾jdkjdk12javajava12javase一个
Java_10

OpenJDK 10 于 2018 年 3 月 20 日发布。

主要特性

此次更新包含以下 12 个新特性:

  • JEP 286:局部变量类型推断
  • JEP 317:实验性的基于 Java 的 JIT 编译器。这是 Linux x64 下 Graal 动态编译器的集成。
  • JEP 310:应用程序类级别数据共享
  • JEP 322:基于时间的版本命名
  • JEP 307:适用于 G1 的多线程完全垃圾回收
  • JEP 304:垃圾回收器接口
  • JEP 314:更多的 Unicode 语言标签扩展
  • JEP 319:内置根证书
  • JEP 312:线程本地握手
  • JEP 316:在可选的内存设备上申请堆内存空间
  • JEP 313:删除本地代码头文件生成器 javah
  • JEP 296:将所有 JDK 分支集成到同一个版本库中

Terwer...大约 2 分钟后端开发JavaSEJava语言新特性版本特性发布更新javajdkjdk10java10javase修补
版本历史

JDK 从 1995 年发布起至今已历经 20 多年,从 JDK1.0 升级到 JDK17(October 19, 2021),本节先一起回顾一下 JDK 的版本变迁和各版本的新特性。

版本变迁

1995 年 5 月 23 日,Java 语言诞生;

1996 年 1 月,第一个 JDK-JDK1.0 诞生;

1996 年 4 月,10 个最主要的操作系统供应商申明将在其产品中嵌入 Java 技术;

1996 年 9 月,约 8.3 万个网页应用了 Java 技术来制作;

1997 年 2 月 18 日,JDK1.1 发布;


Terwer...大约 3 分钟后端开发JavaSEJava语言新特性版本特性历史javajdk