大家好,欢迎来到IT知识分享网。
Java8在Java开发世界里,无疑为当前使用占比最多的Java版本,虽然新版本已经更新到18版。也许哪天项目需要从Java8升级到Java更新的版本,可能性更大的,也许哪天要开始一个新项目,也许不会考虑Java8,而是考虑当前最新且技术支持时间最长的版本。这里我们就看看不同版本间有哪些新特征,做个预习。
在Java众多版本中,会有一些版本,是长期支持版本(Long Term Support, LTS),也就是说,这些版本的更新更多是关注稳定性,安全性及性能,而不是添加新的功能。并且这些版本维护时间也长,比如Java8会被维护到2030年。以下是Java LTS版本,及至少维护到的年限。
- Java 7 – LTS, 2026年
- Java 8 – LTS,2030年
- Java 11 – LTS, 2026年
- Java 17 – LTS,2029年
- 所有其他Java版本 – 非LTS
那现在看看从Java 8到Java 18的新特性列表, Java 18的最近更新是在2022年3月, 支持日期到2022年9月。
New Java language features since Java 8
Feature |
Since |
Preview since |
Simple Web Server (a.k.a com.sun.net.httpserver.SimpleFileServer) |
18 |
|
Code Snippets in Java API Documentation |
18 |
|
UTF-8 by Default – instead of the charset defined by the system. |
18 |
|
Context-Specific Deserialization Filters – allow applications to configure deserialization filters, either specify a pattern via a system property, or a filter factory via a system property or via ObjectInputFilter.Config |
17 |
|
Pattern Matching for switch – like instanceof for switch; switch is an expression and can be assigned |
17 |
|
Foreign Function & Memory API (an alternative to JNI) |
16 |
|
Vector API – express computations that compile to optimal hardware instructions |
16 |
|
Sealed classes (inheritance only for allowed classes): |
17 |
15 |
Record type – data classes with implicit getters, constructor, equals, hashCode and toString methods: |
16 |
14 |
Static members in inner classes (part of Record type JEP) |
16 |
16 |
Pattern Matching for instanceof: |
16 |
14 |
Text blocks: |
15 |
13 |
New String methods (formatted, stripIndent, translateEscapes) |
15 |
|
Switch expressions: |
14 |
12 |
New String methods (indent, transform) |
12 |
|
CompactNumberFormat class |
12 |
|
New String methods (repeat, isBlank, strip, lines) |
11 |
|
var type allowed in Lambda Parameters: |
11 |
|
New HTTP client API |
11 |
9 |
TLS v1.3 – support for a new SSL/TLS protocol version |
11 |
|
var type allowed for local variables: |
10 |
|
Flow API (reactive streams) |
9 |
|
Java Platform Module System (modules) |
9 |
|
Collection factory methods: |
9 |
|
Stream API improvements (takeWhile, dropWhile, ofNullable, iteratewith condition) |
9 |
|
Multi-Resolution Image API |
9 |
|
Stack-Walking API |
9 |
|
this.getClass().getPackageName() |
9 |
|
Process API updates (detailed info about processes, e.g. ID, onExit, destroy) |
9 |
|
new methods in CompletableFuture API (delay, timeout) |
9 |
|
Interface private methods |
9 |
|
since and forRemoval in @Deprecated |
9 |
|
Interface Default and Static Methods |
8 |
|
Method References |
8 |
|
Optional class |
8 |
|
Lambda expressions |
8 |
|
Functional interfaces |
8 |
|
Stream API |
8 |
|
Effectively Final Variables |
8 |
|
Repeating Annotations |
8 |
|
New Date Time API |
8 |
New JDK tools and features since OpenJDK 8
Tool / feature |
Since |
Experimental since |
Packaging Tool |
14 |
|
Epsilon (no-op) GC |
11 |
|
Experimental Java-Based JIT Compiler (Graal VM) |
10 |
|
Shenandoah GC |
15 |
12 |
Z GC (JEP 377) |
15 |
11 |
Helpful NullPointerExceptions |
14 |
|
Launching Java files as scripts |
11 |
|
Flight recorder (data collection framework for troubleshooting) |
11 |
|
Docker Container Support: |
10, |
|
Flexible heap size selection: |
10, |
|
Application Class-Data Sharing (CDS) |
10 |
|
jlink – custom JRE image, subset of JRE |
9 |
|
JShell (Java REPL) – run Java commands interactively |
9 |
|
Multi-Release JAR Files |
9 |
|
Compact Strings |
9 |
Deprecated/removed features and APIs:
Feature / API |
Deprecated since |
Removed since |
Deprecate Finalization for Removal (finalize() and similar methods) |
18 |
|
Deprecate the Security Manager for Removal |
17 |
|
Deprecate the Applet API for Removal |
17 |
|
Constructors of primitive wrapper classes (e.g. new Integer(1)) |
16 |
|
RMI Activation |
15 |
17 |
ParallelScavenge + SerialOld GC Combination |
14 |
|
Strongly Encapsulate JDK Internals (except sun.misc.Unsafe and some more) |
9 |
17 |
Nashorn JavaScript Engine |
11 |
15 |
Solaris and SPARC Ports |
14 |
15 |
CMS GC |
9 |
14 |
Pack200 Tools and API |
11 |
14 |
Java FX (moved to OpenJFX) |
11 |
|
Java EE and CORBA modules (JAX-WS, JAXB, JAF, Common Annotations, CORBA, JTA) |
9 |
11 |
javah Native-Header Generator |
10 |
|
Applet API (Deprecated For Removal in Java 17) |
9 |
|
jhat Heap Visualizer |
9 |
|
Launch-Time JRE Version Selection |
9 |
|
rt.jar and tools.jar |
9 |
|
The extension mechanism (java.ext.dirs property) |
9 |
|
Rarely-Used GC Combinations |
8 |
9 |
参考资料:
- .Lost in Coding – NEW FEATURES BETWEEN JAVA 8 AND JAVA 18
- Java Magazin – The art of long-term support and what LTS means for the Java ecosystem
- Oracle Java SE Support Roadmap
https://www.oracle.com/java/technologies/java-se-support-roadmap.html
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58092.html