-
Notifications
You must be signed in to change notification settings - Fork 5
/
Java Features.txt
139 lines (129 loc) · 4.74 KB
/
Java Features.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
82
83
84
85
86
87
88
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
137
138
139
Java 8 Features
* Lambda expression support in APIs
* Stream API
* Functional interface and default methods
* Optionals
* Nashorn – JavaScript runtime which allows developers to embed JavaScript code within applications
* Annotation on Java Types
* Unsigned Integer Arithmetic
* Repeating annotations
* New Date and Time API
* Statically-linked JNI libraries
* Launch JavaFX applications from jar files
* Remove the permanent generation from GC
Java 9 Features
* Java platform module system
* Interface Private Methods
* HTTP 2 Client
* JShell – REPL Tool
* Platform and JVM Logging
* Process API Updates
* Collection API Updates
* Improvements in Stream API
* Multi-Release JAR Files
* @Deprecated Tag Changes
* Stack Walking
* Java Docs Updates
* Miscellaneous Other Features
Java 10 Features
* JEP 286: Local Variable Type Inference
* JEP 322: Time-Based Release Versioning
* JEP 304: Garbage-Collector Interface
* JEP 307: Parallel Full GC for G1
* JEP 316: Heap Allocation on Alternative Memory Devices
* JEP 296: Consolidate the JDK Forest into a Single Repository
* JEP 310: Application Class-Data Sharing
* JEP 314: Additional Unicode Language-Tag Extensions
* JEP 319: Root Certificates
* JEP 317: Experimental Java-Based JIT Compiler
* JEP 312: Thread-Local Handshakes
* JEP 313: Remove the Native-Header Generation Tool
* New Added APIs and Options
* Removed APIs and Options
Java 11 Features (LTS)
* HTTP Client API
* Launch Single-File Programs Without Compilation
* String API Changes
* Collection.toArray(IntFunction)
* Files.readString() and Files.writeString()
* Optional.isEmpty()
Java 12 Features
* Collectors.teeing() in Stream API
* String API Changes
* Files.mismatch(Path, Path)
* Compact Number Formatting
* Support for Unicode 11
* Switch Expressions (Preview)
Java 13 Features
* JEP 355 – Text Blocks (Preview)
* JEP 354 – Switch Expressions Enhancements (Preview)
* JEP 353 – Reimplement the Legacy Socket API
* JEP 350 – Dynamic CDS Archive
* JEP 351 – ZGC: Uncommit Unused Memory
* FileSystems.newFileSystem() Method
* DOM and SAX Factories with Namespace Support
Java 14 Features
* JEP 305 – Pattern Matching for instanceof (Preview)
* JEP 368 – Text Blocks (Second Preview)
* JEP 358 – Helpful NullPointerExceptions
* JEP 359 – Records (Preview)
* JEP 361 – Switch Expressions (Standard)
* JEP 343 – Packaging Tool (Incubator)
* JEP 345 – NUMA-Aware Memory Allocation for G1
* JEP 349 – JFR Event Streaming
* JEP 352 – Non-Volatile Mapped Byte Buffers
* JEP 363 – Remove the Concurrent Mark Sweep (CMS) Garbage Collector
* JEP 367 – Remove the Pack200 Tools and API
* JEP 370 – Foreign-Memory Access API (Incubator)
Java 15 Features
* Sealed Classes and Interfaces (Preview) (JEP 360)
* EdDSA Algorithm (JEP 339)
* Hidden Classes (JEP 371)
* Pattern Matching for instanceof (Second Preview) (JEP 375)
* Removed Nashorn JavaScript Engine (JEP 372)
* Reimplement the Legacy DatagramSocket API (JEP 373)
* Records (Second Preview) (JEP 384)
* Text Blocks become a standard feature. (JEP 378)
Java 16 Features
* JEP 338: Vector API (Incubator)
* JEP 347: Enable C++14 Language Features
* JEP 357: Migrate from Mercurial to Git
* JEP 369: Migrate to GitHub
* JEP 376: ZGC: Concurrent Thread-Stack Processing
* JEP 380: Unix-Domain Socket Channels
* JEP 386: Alpine Linux Port
* JEP 387: Elastic Metaspace
* JEP 388: Windows/AArch64 Port
* JEP 389: Foreign Linker API (Incubator)
* JEP 390: Warnings for Value-Based Classes
* JEP 392: Packaging Tool
* JEP 393: Foreign-Memory Access API (Third Incubator)
* JEP 394: Pattern Matching for instanceof
* JEP 395: Records
* JEP 396: Strongly Encapsulate JDK Internals by Default
* JEP 397: Sealed Classes (Second Preview)
Java 17 Features (LTS)
* (JEP-306) Restore Always-Strict Floating-Point Semantics
* (JEP-356) Enhanced Pseudo-Random Number Generators
* (JEP-382) New macOS Rendering Pipeline
* (JEP-391) macOS/AArch64 Port
* (JEP-398) Deprecate the Applet API for Removal
* (JEP-403) Strongly Encapsulate JDK Internals
* (JEP-406) Pattern Matching for switch (Preview)
* (JEP-407) Remove RMI Activation
* (JEP-409) Sealed Classes
* (JEP-410) Remove the Experimental AOT and JIT Compiler
* (JEP-411) Deprecate the Security Manager for Removal
* (JEP-412) Foreign Function & Memory API (Incubator)
* (JEP-414) Vector API (Second Incubator)
* (JEP-415) Context-Specific Deserialization Filters
Java 18 Features
* JEP-400: UTF-8 by Default
* JEP-408: Simple Web Server
* JEP-413: Code Snippets in Java API Documentation
* JEP-416: Reimplement Core Reflection with Method Handles
* JEP-417: Vector API (Third Incubator)
* JEP-418: Internet-Address Resolution SPI
* JEP-419: Foreign Function & Memory API (Second Incubator)
* JEP-420: Pattern Matching for switch (Second Preview)
* JEP-421: Deprecate Finalization for Removal