218.md 8.6 KB
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12
# Java 版本和新功能

> 原文: [https://howtodoinjava.com/java-version-wise-features-history/](https://howtodoinjava.com/java-version-wise-features-history/)

Java 版本 7 或 8 中的**新 Java 功能是什么? 这些是 Java 面试中经常被问到的问题。**

在此页面中,我依次列出了所有 **JDK 从 JDK 1.x 到 Java SE 12** 的更改。 尽管我已尽力涵盖了我所能收集的全部信息,但是,如果您知道我在下面遗漏的内容,请告诉我,我将添加该信息。

## Java 12 功能

[Java 12](https://howtodoinjava.com/java12/new-features-enhancements/) (于 2019 年 3 月 19 日发布)是 JDK 的最新版本。 让我们看看它为开发人员和建筑师带来的新功能和改进。

W
wizardforcel 已提交
13
*   Stream API 中的 Collectors.teeing()
W
wizardforcel 已提交
14 15 16 17 18 19 20 21 22 23 24 25 26 27
*   字符串 API 的更改
*   Files.mismatch(路径,路径)
*   紧凑数字格式
*   支持 Unicode 11
*   切换表达式(预览)

## Java 11 功能

[Java 11](https://howtodoinjava.com/java11/features-enhancements/) (于 2018 年 9 月发布)包含许多重要且有用的更新。 让我们看看它为开发人员和建筑师带来的新功能和改进。

*   HTTP 客户端 API
*   启动不编译的单文件程序
*   字符串 API 的更改
*   Collection.toArray(IntFunction)
W
wizardforcel 已提交
28 29
*   Files.readString()和 Files.writeString()
*   Optional.isEmpty()
W
wizardforcel 已提交
30 31 32 33 34 35 36 37 38 39

## Java 10 功能

Java 9 发布后,Java 10 很快问世。 与以前的版本不同,Java 10 没有那么多令人兴奋的功能,但它仍然[很少有重要更新](https://howtodoinjava.com/java10/java10-features/),它们会改变您的编码方式以及其他将来的 Java 版本。

*   [JEP 286:局部变量类型推断](https://howtodoinjava.com/java10/var-local-variable-type-inference/)
*   JEP 322:基于时间的发行版本控制
*   JEP 304:垃圾收集器接口
*   JEP 307:用于 G1 的并行全 GC
*   JEP 316:备用存储设备上的堆分配
W
wizardforcel 已提交
40
*   JEP 296:将 JDK 林整合到单个仓库中
W
wizardforcel 已提交
41
*   JEP 310:应用类 - 数据共享
W
wizardforcel 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
*   JEP 314:其他 Unicode 语言标签扩展
*   JEP 319:根证书
*   JEP 317:基于 Java 的实验性 JIT 编译器
*   JEP 312:线程本地握手
*   JEP 313:删除本机头生成工具
*   新增的 API 和选项
*   删除的 API 和选项

## Java 9 功能

Java 9 在`September, 2017`上可用。 最大的变化是模块化,即 Java 模块。

Java 9 中的一些重要功能/ [更改是:](https://howtodoinjava.com/java9/java9-new-features-enhancements/)

*   [Java 平台模块系统](https://howtodoinjava.com/java9/java-9-modules-tutorial/)
*   [接口专用方法](https://howtodoinjava.com/java9/java9-private-interface-methods/)
*   HTTP 2 客户端
*   JShell – REPL 工具
*   平台和 JVM 日志记录
*   处理 API 更新
*   集合 API 更新
*   [流 API](https://howtodoinjava.com/java9/stream-api-improvements/) 的改进
*   多版本 JAR 文件
*   @不推荐使用的标签更改
*   栈走
*   Java 文档更新
*   其他功能

请在此处查看更新的发行信息[](https://openjdk.java.net/projects/jdk9/)

## Java 8 功能

**发行日期**`March 18, 2014`

代号文化被删除。 包括的功能包括:

*   API 中的 [Lambda 表达式](//howtodoinjava.com/java8/complete-lambda-expressions-tutorial-in-java/)支持
*   [流 API](https://howtodoinjava.com/java8/java-streams-by-examples/)
*   [功能接口](//howtodoinjava.com/java8/functional-interface-tutorial/)[默认方法](//howtodoinjava.com/java8/default-methods-in-java-8/)
*   [可选](//howtodoinjava.com/java8/java-8-optionals-complete-reference/)
W
wizardforcel 已提交
82
*   Nashorn – JavaScript 运行时,允许开发人员将 JavaScript 代码嵌入应用中
W
wizardforcel 已提交
83 84 85 86 87
*   Java 类型注释
*   [无符号整数运算](//howtodoinjava.com/java8/java-8-exact-airthmetic-operations-supported-in-math-class/)
*   重复注释
*   [新日期和时间 API](//howtodoinjava.com/java8/date-and-time-api-changes-in-java-8-lambda/)
*   静态链接的 JNI 库
W
wizardforcel 已提交
88
*   从 jar 文件启动 JavaFX 应用
W
wizardforcel 已提交
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
*   从 GC 中删除永久生成

## Java SE 7 功能

**发行日期**`July 28, 2011`

此版本称为“海豚”。 包括的功能包括:

*   JVM 对动态语言的支持
*   压缩的 64 位指针
*   [开关](//howtodoinjava.com/java-7/string-class-is-supported-in-switch-statement-in-java-7/)中的字符串
*   [尝试声明中的自动资源管理](//howtodoinjava.com/java-7/automatic-resource-management-with-try-with-resources-in-java-7/)
*   [钻石操作员](//howtodoinjava.com/java-7/improved-type-inference-in-java-7/)
*   简化的 varargs 方法声明
*   二进制整数文字
*   [数字文字下划线](//howtodoinjava.com/java-7/improved-formatted-numbers-in-java-7/)
*   [改进的异常处理](//howtodoinjava.com/java-7/improved-exception-handling-in-java-7/)
*   [ForkJoin 框架](//howtodoinjava.com/java-7/forkjoin-framework-tutorial-forkjoinpool-example/)
*   [NIO 2.0](//howtodoinjava.com/category/java-7-features/nio/) 具有对多个文件系统,文件元数据和符号链接的支持
*   [WatchService](//howtodoinjava.com/java-7/auto-reload-of-configuration-when-any-change-happen/)
*   Timsort 用于对对象的集合和数组进行排序,而不是合并排序
*   图形功能的 API
*   支持新的网络协议,包括 SCTP 和套接字直接协议

## Java SE 6 功能

**发行日期**`December 11, 2006`

此版本称为“野马”。 Sun 从版本号中删除了“ .0”,版本变为 Java SE6。所包含的功能包括:

*   脚本语言支持
*   性能提升
*   JAX-WS
*   JDBC 4.0
*   Java 编译器 API
*   JAXB 2.0 和 StAX 解析器
*   可插拔注释
*   新的 GC 算法

## J2SE 5.0 功能

**发行日期**`September 30, 2004`

此版本称为“老虎”。 此发行版中添加了 Java 采访中要求的大多数功能。

版本也称为 5.0,而不是 1.5。 包括的功能在下面列出:

*   [泛型](//howtodoinjava.com/java/generics/complete-java-generics-tutorial/)
W
wizardforcel 已提交
137
*   [注解](//howtodoinjava.com/2014/06/09/complete-java-annotations-tutorial/)
W
wizardforcel 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151
*   自动装箱/拆箱
*   [枚举](//howtodoinjava.com/java-5/guide-for-understanding-enum-in-java/)
*   瓦拉格斯
*   [增强的`for each`循环](//howtodoinjava.com/java/basics/enhanced-for-each-loop-in-java/)
*   [静态导入](//howtodoinjava.com/java/basics/static-import-declarations-in-java/)
*   `java.util.concurrent`中新的[并发实用程序](//howtodoinjava.com/java-5/java-executor-framework-tutorial-and-best-practices/)
*   `Scanner`类,用于解析来自各种输入流和缓冲区的数据。

## J2SE 1.4 功能

**发行日期**`February 6, 2002`

此版本称为“ Merlin”。 包括的功能包括:

W
wizardforcel 已提交
152
*   [`assert`](//howtodoinjava.com/tutorials/java-keywords/assert/)关键字
W
wizardforcel 已提交
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
*   [正则表达式](//howtodoinjava.com/java-regular-expression-tutorials/)
*   异常链
*   Internet 协议版本 6(IPv6)支持
*   [新的 I / O; 蔚来](//howtodoinjava.com/java-nio-tutorials/)
*   记录 API
*   图像 I / O API
*   集成的 XML 解析器和 XSLT 处理器(JAXP)
*   集成的安全性和加密扩展(JCE,JSSE,JAAS)
*   Java Web Start
*   首选项 API(java.util.prefs)

## J2SE 1.3 功能

**发行日期**`May 8, 2000`

该版本称为“ Kestrel”。 包括的功能包括:

*   热点 JVM
*   Java 命名和目录接口(JNDI)
*   Java 平台调试器体系结构(JPDA)
*   Java 声音
*   合成代理类

## J2SE 1.2 功能

**发行日期**`December 8, 1998`

此版本称为“游乐场”。 就添加的类数而言,这是一个主要版本(几乎是其大小的三倍)。 引入“ J2SE”一词是为了区分代码平台与 J2EE 和 J2ME。 包括的功能包括:

*   `strictfp`关键字
*   Swing 图形 API
*   Sun 的 JVM 首次配备了 JIT 编译器
*   Java 插件
*   [收藏框架](//howtodoinjava.com/java/collections/useful-java-collection-interview-questions/)

## JDK 1 功能

**发行日期**`January 23, 1996`

这是[初始版本](https://web.archive.org/web/20080205101616/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml),最初称为 **Oak** 。 它具有非常不稳定的 API 和一个名为 **WebRunner** 的 Java Web 浏览器。

第一个稳定版本 JDK 1.0.2 被称为 Java 1。

1997 年 2 月 19 日,发布了 JDK 1.1,其中列出了一些主要功能,例如:

*   AWT 事件模型
*   内部班
*   JavaBeans
*   JDBC
*   RMI
*   [反射](//howtodoinjava.com/java/related-concepts/real-usage-examples-of-reflection-in-java/)仅支持自省,无法在运行时进行修改。
*   Windows 的 JIT(即时)编译器

同样,随时建议我在上面的列表中错过的任何 Java 版本中的 **Java 功能。**

学习愉快!