java-new-features-notes
java-new-features-notes
Java 8 Features
Functional Programming
Lambda Expressions
Functional Interfaces
Method References
Default Methods
Stream API
New Date/Time
Java 9 Features
Reactive Manifesto
Responsive
Resilient
Elastic
Message Driven
Publisher
subscribe()
Subscriber
onSubcribe
onNext
onError
onComplete
Subscription
request()
cancel()
Processor
Java 10 Features
Local Variable Type Inference
Optional Enhancements - orElseThrow()
Collection Enhancements - copyOf() factory method
Stream API Enhancements - Collectors can return unmodifiable collection
Removed Features
Applets
Java Web Start
JavaFX moved out of JDK -> openjfx.io
Java EE and CORBA modules
Java 12 Features
String class new method - intent(), transform()
New File mismatch method - mismatch() => -1, N
Stream Enhancement - Collectors.teeing(downstream1, downstream2,
merger)
CompactNumberFormat
Preview Features
Switch Expression
Pattern Matching for instanceOf
Other Features
Unicode 11 Support
JVM Constants API
Micro Benchmark Suite
Default CDS Archive => Reduce Start Time and Memory
Footprint
Java 13 Features
Preview Features
Switch Expression
Text Block
Other Features
Legacy Socket API Reimplemented
Unicode 12 Support
Dynamic CDS Archive
CDS Enhancements
Java 14 Features
Switch Expression
Preview Features
Text Block
Pattern Matching for instanceOf
Records
Other Features
Helpful NullPointerException
Java 15 Features
Text Blocks
Preview Features
Pattern Matching for instanceOf and typeChecks
Records
Sealed Classes
Other Features
Hidden Classes
ZGC and Shenandoah Garbage Collectors
Java 16 Features
Preview Features
Pattern Matching for instanceOf and typeChecks
Records
Sealed Classes
Pattern Matching
Switch Expression
Records
Sealed Classes
Other Features
Restore Always-Strict Floating-Point Semantics - strictfp
Enhanced Pseudo-Random Number Generators
New macOS Rendering Pipeline => OpenGL -> Metal API
macOS/AArch64 Port => Intel (AMD64) => M1/M2 (ARM64)
Strongly Encapsulate JDK Internals => -illegal-access
Context-Specific Deserialization Filters
LTS Release Cycle reduced to two years