Java has completed its 25 years in the programming industry this year. In this two and half decade, the programming language designed by James Gosling has gained enormous popularity. Even today, with the invasion of a large fleet of competing programming languages, the charm of Java has not faded.
The stewardship of Java passed from Sun Microsystems to Oracle with the acquisition of the former by the latter in 2010. Oracle nurtured Java with revamped design and regular upgrades and capabilities. Opposed to the three-year release cadence followed previously, Oracle started releasing updates to Java Standard Edition (Java SE) every six months to provide developers with faster innovations and greater predictability and stability.
Today, Java runs on 3 billion devices worldwide, and it’s used by more than 12 million developers. To celebrate the 25 years of
Oracle delivered Java 15 on time on the six-month Java release cadence. The latest release, Java 15, includes Sealed Classes as a first-time preview feature and second previews of Pattern Matching and Records for additional community feedback.
Here are some cool features in Java 15 that you may have overlooked:
1. Edwards-Curve Digital Signature Algorithm (EdDSA) - (JDK Enhancement Proposal (JEP) 339):
Impact: This feature improves security and performance by implementing cryptographic signatures using the EdDSA as described by RFC 8032
2. Hidden Classes (JEP 371):
Impact: The Hidden Classes feature helps improve the productivity of the applications by improving how Java works with frameworks that generate classes at run time and use them indirectly, via reflection.
Preview features that are now finalised:
3. Text Blocks (JEP 378):
Impact: This was a preview feature in (Java Development Kit) JDK 13 and JDK 14. In Java 15, it improves developer productivity by adding multi-line string literals and automatically formatting strings in a predictable way
4. Z Garbage Collector (JEP 377):
Impact: This scalable, low-latency garbage collector moves to production with
The incubating and preview features:
5. Sealed Classes (JEP 360):
Impact: Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them.
6. Pattern Matching for instanceof (JEP 375):
Impact: This preview feature improves developer productivity by eliminating the need for common boilerplate code and should allow more concise type-safe code
7. Records (JEP 384):
Impact: This preview feature, first introduced in JDK 14, provides a compact syntax for declaring classes with shallowly immutable data.
8. Foreign-Memory Access API (JEP 383):
Impact: This incubating feature defines an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap
For modernising the existing code:
9. Reimplementation of the Legacy Datagram Socket and MulticastSocket APIs (JEP 373):
Impact: Oracle introduced this feature to improve the maintainability and stability of the JDK by replacing the underlying implementations of the java.net.DatagramSocket and java.net.MulticastSocket APIs with simpler and more modern implementations