Java 版本和新特性
原文: https://howtodoinjava.com/java-version-wise-features-history/
Java 版本 7 或 8 中的新 Java 特性是什么? 这些是 Java 面试中经常被问到的问题。
在此页面中,我依次列出了所有 JDK 从 JDK 1.x 到 Java SE 12 的更改。 尽管我已尽力涵盖了我所能收集的全部信息,但是,如果您知道我在下面遗漏的内容,请告诉我,我将添加该信息。
Java 12 特性
Java 12 (于 2019 年 3 月 19 日发布)是 JDK 的最新版本。 让我们看看它为开发人员和架构师带来的新特性和改进。
- 流 API 中的
Collectors.teeing()
- 字符串 API 的更改
Files.mismatch(Path, Path)
- 紧凑数字格式
- 支持 Unicode 11
switch
表达式(预览)
Java 11 特性
Java 11 (于 2018 年 9 月发布)包含许多重要且有用的更新。 让我们看看它为开发人员和架构师带来的新特性和改进。
- HTTP 客户端 API
- 启动不编译的单文件程序
- 字符串 API 的更改
Collection.toArray(IntFunction)
Files.readString()
和Files.writeString()
Optional.isEmpty()
Java 10 特性
Java 9 发布后,Java 10 很快问世。 与以前的版本不同,Java 10 没有那么多令人兴奋的特性,但它仍然很少有重要更新,它们会改变您的编码方式以及其他将来的 Java 版本。
- JEP 286:局部变量类型推断
- JEP 322:基于时间的发行版本控制
- JEP 304:垃圾收集器接口
- JEP 307:用于 G1 的并行全 GC
- JEP 316:备用存储设备上的堆分配
- JEP 296:将 JDK 森林整合到单个仓库中
- JEP 310:应用类 - 数据共享
- JEP 314:其他 Unicode 语言标签扩展
- JEP 319:根证书
- JEP 317:基于 Java 的实验性 JIT 编译器
- JEP 312:线程本地握手
- JEP 313:删除本机头生成工具
- 新增的 API 和选项
- 删除的 API 和选项
Java 9 特性
Java 9 在 2017 年九月可用。 最大的变化是模块化,即 Java 模块。
- Java 平台模块系统
- 接口专用方法
- HTTP 2 客户端
- JShell – REPL 工具
- 平台和 JVM 日志记录
- 进程 API 更新
- 集合 API 更新
- 流 API 的改进
- 多版本 JAR 文件
@Deprecated
标签更改- 栈遍历
- Java 文档更新
- 其他特性
Java8 特性
发行日期:2014.3.18
代号文化被删除。 包括的特性包括:
- API 中的 Lambda 表达式支持
- 流 API
- 函数式接口和默认方法
Optional
- Nashorn – JavaScript 运行时,允许开发人员将 JavaScript 代码嵌入应用中
- Java 类型注解
- 无符号整数运算
- 重复注解
- 新日期和时间 API
- 静态链接的 JNI 库
- 从 jar 文件启动 JavaFX 应用
- 从 GC 中删除永久代
Java SE 7 特性
发行日期:2011.7.28
此版本称为“海豚”。 包括的特性包括:
- JVM 对动态语言的支持
- 压缩的 64 位指针
switch
中的字符串try
语句中的自动资源管理- 菱形运算符
- 简化的可变参数方法声明
- 二进制整数字面值
- 数字字面值下划线
- 改进的异常处理
- ForkJoin 框架
- NIO 2.0 具有对多个文件系统,文件元数据和符号链接的支持
WatchService
- Timsort 用于对对象的集合和数组进行排序,而不是归并排序
- 图形特性的 API
- 支持新的网络协议,包括 SCTP 和套接字直接协议
Java SE 6 特性
发行日期:2006.12.11
此版本称为“野马”。 Sun 从版本号中删除了“.0
”,版本变为 Java SE6。所包含的特性包括:
- 脚本语言支持
- 性能提升
- JAX-WS
- JDBC 4.0
- Java 编译器 API
- JAXB 2.0 和 StAX 解析器
- 可插拔注解
- 新的 GC 算法
J2SE 5.0 特性
发行日期:2004.9.30
此版本称为“老虎”。 此发行版中添加了 Java 面试中要求的大多数特性。
版本也称为 5.0,而不是 1.5。 包括的特性在下面列出:
J2SE 1.4 特性
发行日期:2002.2.6
此版本称为“Merlin”。 包括的特性包括:
assert
关键字- 正则表达式
- 异常链
- 互联网协议版本 6(IPv6)支持
- 新的 I/O;
Future
- 日志 API
- 图像 I/O API
- 集成的 XML 解析器和 XSLT 处理器(JAXP)
- 集成的安全性和加密扩展(JCE,JSSE,JAAS)
- Java Web Start
- 首选项 API(
java.util.prefs
)
J2SE 1.3 特性
发行日期:2000.5.8
该版本称为“Kestrel”。 包括的特性包括:
- Hotspot JVM
- Java 命名和目录接口(JNDI)
- Java 平台调试器架构(JPDA)
- JavaSound
- 复合代理类
J2SE 1.2 特性
发行日期:1008.12.8
此版本称为“游乐场”。 就添加的类数而言,这是一个主要版本(几乎是其大小的三倍)。 引入“J2SE”一词是为了区分代码平台与 J2EE 和 J2ME。 包括的特性包括:
strictfp
关键字- Swing 图形 API
- Sun 的 JVM 首次配备了 JIT 编译器
- Java 插件
- 集合框架
JDK 1 特性
发行日期:1996.1.23
这是初始版本,最初称为 Oak 。 它具有非常不稳定的 API 和一个名为WebRunner
的 Java Web 浏览器。
第一个稳定版本 JDK 1.0.2 被称为 Java 1。
1997 年 2 月 19 日,发布了 JDK 1.1,其中列出了一些主要特性,例如:
- AWT 事件模型
- 内部类
- JavaBeans
- JDBC
- RMI
- 反射仅支持自省,无法在运行时进行修改。
- Windows 的 JIT(即时)编译器
同样,随时建议我在上面的列表中错过的任何 Java 版本中的 Java 特性。
学习愉快!