Java SE 17 version was released on the 14th of September of the year 2021, and is the third Long Term Supported (LTS) version of Java as a successor to LTS versions 8 and 11.
What is an LTS Version in Java?
Java (Oracle and other Java communities such as OpenJDK, Azul, RedHat, etc.) releases a Long Term Support version typically every three years. These versions get a long-term support than the Non-LTS versions which is usually 8 years or more.
Java JDK 21 is the latest edition to the Long Term Support version of Java 17, 11, and 8.
There is a list of 15 JEPs as a part of Java 21, some of the must-know features are Generational Z Garbage Collector, Record Patterns, Virtual Threads, and Sequenced Collections.
List of all Java JDK LTS Versions and Support Dates
|Java JDK LST Version||Release Data||Extended Support Date|
|Java SE 8||18th March 2014||December 2030|
|Java SE 11||25th September 2018||September 2026|
|Java SE 17||14th September 2021||September 2029|
|Java SE 21||19th September 2023||September 2031|
Java JDK 17 LTS Versions Support Timeline Diagram
Java 17 will have extended support from Oracle and other major JDK contributors until the year 2029.
What are the new features of Java JDK 17?
The Java JDK 17 has 14 JEPs, Some of the features include, Sealed Classes, macOS/AArch64 Port, Strongly Encapsulate JDK Internals, and Strongly Encapsulate JDK Internals.
- 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
Facing issues? Have Questions? Post them here! I am happy to answer!
- CRUD operations in Spring Boot + JDBC
- Java Check Leap Year - Programs with Code Examples
- [fix] Java JDBC ConnectException: Connection refused
- How to add hours and minutes to Java Instant
- Java Program: Random Number Generator
- Java: The value of the local variable string is not used
- How to get list of all Java versions installed on macOS
- Java SE JDBC with Prepared Statement Parameterized Select Example
- Java + Spring JDBC Template + Gradle Example
- Convert String to LocalDate in Java
- Remove Trailing zeros BigDecimal Java
- Java 8 Predicate Functional Interface isEqual() Method Example
- How to Hardcode Date in Java with Examples
- Java 8: Predicate negate() default Function Example
- Java: Collect Stream as ArrayList or LinkedList
- The Motivation Behind Generics in Java Programming
- How to Add/Subtract Days to the Current Date in Java
- Error: Can not find the tag library descriptor for
- Setting up JUnit 5 dependency with Maven Example
- Run Java Code Every Second
- How to create a tar.gz file using Java
- [Fix] java: integer number too large compilation error
- Java 8: Find the Max value in a List
- Your JBoss Application Server 7 is running However you have not yet added any users to be able to access the admin console
- Convert Java Array to ArrayList Code Example
- AWS SNS CLI Command Publish Message Attributes - AWS
- Installing Visual Studio Code on Raspberry Pi - HowTos
- How to clear cache and browsing history in Google Chrome? - Chrome
- Microsoft Teams Zoom In and Zoom Out Keyboard Shortcut - Teams
- How to close all tabs of Notepad++? - NotepadPlusPlus
- How to enable Dark Mode in Windows 11 - Windows-11
- How to change Android Button Color using xml attribute and programatically using java - Android