Java features we are looking forward to using
One of the down sides to supporting older versions of Java is not being able make use of the newest JDKs as from their release dates. Keeping in mind the various java features by version can prove very useful. There are many Java features we are looking forward to using when we increase our minimum supported version.
Recently we have been talking with our users to determine which minimum Java version we should support in the coming years. Whilst reviewing our minimum version we wanted to keep in mind each versions support duration, the number of people still using a given version, and what new features our developers will have access to.
When you spend time working to maintain support for an older version of Java it can be easy to forget which features are introduced in each version. As we currently support Java 8 (at the time of writing) we found it useful to review all the versions from 9 onwards and note down which new features were added to each. Now we have completed this we wanted to share the features in each of these versions that we are excited to get our hands on (leaving out preview features due to their impermanence).
Java 9 features
- [JEP-269] Collections Factory Methods (e.g. List.of(a, b, c))
- [JEP-266] Stream API improvements
- [JEP-251] Multi-Resolution Image API
- [JEP-213] Interfaces private methods
- [Multiple JEPs] Project Jigsaw: Java Modules and Multi-Release Jar Files
JDK 9 was released on 21st September 2017
JDK 10 was released on 20th March 2018
- String utility methods
- Includes repeat(), isBlank(), strip(), lines()
- Files utility methods
- Includes Files.writeString and Files.readString(path);
- [JEP-323] Local-Variable Type Inference (var) for lambda parameters
- [JEP-321] New HttpClient API
JDK 11 was released on 25th September 2018
- String utility methods
- Includes indent(), transform()
JDK 12 was released on 19th March 2019
- Several features but all in internal to JDK or in preview so we can not currently rely upon.
JDK 13 was released on 17th September 2019
JDK 14 was released on 17th March 2020
- [JEP-378] Text-Blocks / Multiline Strings
JDK 15 was released on 15th September 2020
JDK 16 was released on 16th March 2021
JDK 17 was released on 14th September 2021
JDK 18 was released on 22nd March 2022
- Several features but all in internal to JDK or in preview so we can not currently rely upon.
JDK 19 was released on 20th September 2022
- Several features but all in internal to JDK or in preview so we can not currently rely upon.
JDK 20 was released on 21st March 2023
- [JEP-431] Sequenced Collections
- [JEP-440] Record Patterns
- [JEP-441] Pattern Matching for switch
- [JEP-444] Virtual Threads
- [JEP-452] Key Encapsulation Mechanism API
JDK 21 was released on 19th September 2023
- [JEP-456] Unnamed Variables & Patterns
JDK 22 was released on 19th March 2024
Our software libraries allow you to
Convert PDF to HTML in Java |
Convert PDF Forms to HTML5 in Java |
Convert PDF Documents to an image in Java |
Work with PDF Documents in Java |
Read and Write AVIF, HEIC, WEBP and other image formats |