More like this


Oracle's piping hot new pot of Java takes out the trash (faster)

JDK 8 Update 40 improves memory handling, JavaScript support

Good riddance to bad Java

Oracle's latest update to the Java Development Kit doesn't add any new language features or change any APIs, but it still includes a number of enhancements that should please Java developers and users.

Released on Tuesday – a couple of weeks ahead of Java SE 8's first birthday – Java Development Kit 8 Update 40 (JDK 8u40) improves performance, memory management, and JavaScript support and includes updates to the JavaFX UI framework for accessibility and OS X compatibility.

It also fixes quite a few bugs, as usual, but none of them are security vulnerabilities this time around.

Java's Garbage First (G1) garbage collector gets some polish in this release. The new version will attempt to perform full garbage collections less often, resulting in fewer long pauses while the system frees memory.

The notion of "memory pressure" has also been added to the JDK, where memory pressure goes up as the system starts to run out of resources. Beginning with JDK 8u40, Java will try to reduce its resource demands when memory pressure runs high to avoid out-of-memory errors. This could lead to reduced performance, but Oracle says this was an intentional choice.

In addition, Oracle has improved how the JVM's Native Memory Tracking (NMT) diagnostic feature scales when running on large systems, so that it no longer affects performance "beyond what is considered acceptable for small programs."

Besides addressing memory issues, the release includes multiple optimizations for Project Nashorn, a feature introduced with Java 8 that allows developers to mix Java code with JavaScript where both run on the JVM. Nashorn's script engine should now run faster, and JDK 8u40 introduces the Nashorn Class Filter, which gives developers tighter control over which Java classes can be accessed by JavaScript code.

The Java Packager Tool, which creates standalone applications that can run on systems that don't otherwise have a Java Runtime installed, has also been improved. These self-contained applications can now be passed command-line arguments and be assigned file type associations by the OS. They also now support multiple entry points, so that several different products can be included in the same package.

These standalone applications are particularly useful for deploying to online shops like the Mac App Store. One problem, however, has been that the JavaFX media stack for OS X was implemented in QTKit and Quicktime, which have been deprecated by Apple. As a result, JavaFX-based applications that used the media stack could not be submitted to the Mac App Store. In JDK 8u40, these portions of JavaFX have been ported to the newer AVFoundation framework, making apps created with them eligible for submission to Apple's store once again.

JavaFX has been enhanced with a few new UI controls. Plus, JavaFX controls are now compatible with assistive technologies. On Windows and OS X, they can now be read by screen readers and traversed using a keyboard, and JavaFX also now supports a high-contrast mode for better visibility.

A full list of the changes in JDK 8u40 is available in the official release notes, here.

The new release is available via the Java auto-update mechanism or from Oracle's website, here. It doesn't have long to live, though. Java Runtime Environment releases expire when a new version with fixes for security vulnerabilities becomes available, and Oracle's next Critical Patch Update fix-fest is due to hit on April 14.

Those still running Java 7 have more to worry about, though. April 2015 is also when Oracle will stop providing new updates to that older version of the platform, except for those customers with extended support contracts. ®