First release

Learn about the new features and functions available with this release.

Packed object technology preview

Packed object support is available as a technology preview for evaluation purposes. This enhancement allows greater control over the layout of objects in memory. The capability enables greater flexibility when dealing with non-Java memory structures, for example, when exchanging and using data between Java code and other languages or environments.
Note: This technology preview was removed in service refresh 5, and is no longer documented.

Improved tracing for the Object Request Broker (ORB)

Component level tracing is now available to improve the debugging of ORB problems. A new system property allows you to generate trace information for one or more ORB components, such as DISPATCH or MARSHAL. For more information about this system property, see -Dcom.ibm.CORBA.Debug.Component.

Autonomic connection management for the Object Request Broker (ORB)

From this release, the ORB automatically manages the number of concurrent connections to the server endpoint, which can improve efficiency. If you want to retain control of these connections, you can turn off this feature by setting the system property com.ibm.CORBA.ConnectionMultiplicity. For more information, see Using the ORB.

Java Native Interface (JNI) static linking

The Java Native Interface (JNI) now enables runtime linking to static native libraries. You can package a Java runtime, native application code, and Java application code together into a single binary executable that does not require the use of shared native libraries. A Java application can use a combination of static and dynamic native libraries, although static libraries must be in memory before they can be used. For more information, see JNI runtime linking in the J9 VM reference.

JIT compiler exploitation of a graphics processing unit (GPU) (Linux only)

A GPU is designed to optimize parallel processing with potentially thousands of cores that can process the same instruction at the same time. The JIT compiler takes advantage of this capability by offloading certain parallel processing tasks from the CPU to a GPU, which can improve the performance of your application. Specific hardware and software requirements apply. For more information, see How the JIT compiler uses a GPU.

Reserving memory space for compressed references

A new option is available for securing space in memory for any native classes, monitors, and threads that are used by compressed references. Setting this option can help prevent OutOfMemoryError exceptions that might occur if the lowest 4 GB of address space becomes full. For more information, see -Xmcrs option in the OpenJ9 user documentation.

Advanced dump filtering on exception strings

A new -Xdump suboption is available that allows you to filter dump events to produce dumps only for exceptions that contain a specific text string in the exception detail message. This capability allows you to fine tune the point at which a dump is produced, and reduce the time taken for problem diagnosis. For more information, see msg_filter option in the OpenJ9 user documentation.

New MXBean for measuring and categorizing CPU usage of the Java virtual machine

A new MXBean is available that monitors CPU consumption of the Java virtual machine and provides detailed accounting for analysis. You can discover the amount of CPU time that is used by system and application threads, with a further breakdown to show time that is spent on Garbage Collection and the JIT compilation processes. You can also control the level of accounting that you want to see because certain complex accounting processes can introduce a small increase in application startup time. For more information about monitoring the CPU consumption, see the JVMCpuMonitorMXBean interface in the com.ibm.lang.management API reference. For more information about controlling the level of accounting, see -XX:[+|-]ReduceCPUMonitorOverhead (AIX®, Linux®, Windows only) in the OpenJ9 user documentation.

Command line option -Xgc:splitheap deprecated (Windows only)

The -Xgc:splitheap option is deprecated and will be removed from future versions of the IBM SDK.

Oracle enhancements for Java SE 8

The following JEPS are included in this release of the SDK:
  • Generalized Target-Type Inference JEP 101
  • Parallel Array Sorting JEP 103
  • Annotations on Java Types JEP 104
  • DocTree API JEP 105
  • Add Javadoc to javax.tools JEP 106
  • Bulk Data Operations for Collections JEP 107
  • Enhance Core Libraries with Lambda JEP 109
  • Charset improvements JEP 112
  • MS-SFU Kerberos 5 Extensions JEP 113
  • TLS Server name Indication (SNI) Extension JEP 114
  • AEAD Cipher Suites JEP 115 (Already available in earlier versions of the IBM SDK)
  • Remove the Annotation-Processing Tool (apt) JEP 117
  • Access to Parameter Names at Runtime JEP 118
  • javax.lang.model Implementation Backed by Core Reflection JEP 119
  • Repeating Annotations JEP 120
  • Stronger Algorithm for Password-Based Encryption JEP 121 (Generating 2048-bit DSA and Diffie-Hellman public key pairs is already supported in earlier versions of the IBM SDK)
  • Enhance the Certificate Revocation-Checking API JEP 124
  • Lambda Expressions & Virtual Extension Methods JEP 126
  • Improve Locale Data Packaging and Adopt Unicode CLDR Data JEP 127
  • BCP 47 Locale Matching JEP 128
  • NSA Cipher Suites JEP 129 (Already available in earlier versions of the IBM SDK)
  • SHA-224 Message Digests JEP 130 (There is limited support for the SHA224 algorithm in earlier versions of the IBM SDK)
  • PKCS#11 Crypto Provider for 64-bit Windows JEP 131
  • Unicode 6.2 JEP 133
  • Base64 Encoding & Decoding JEP 135
  • Enhance javac to Improve Build Speed JEP 139
  • Limited doPrivileged JEP 140
  • Date & Time API JEP 150
  • Launch JavaFX Applications JEP 153 ( JavaFX is not supported by IBM SDK, Java Technology Edition, Version 8)
  • Concurrency Updates JEP 155
  • Prepare for Modularization JEP 162
  • Leverage CPU Instructions for AES Cryptography JEP 164
  • JDBC 4.2 JEP 170
    Note: You must use a supported JDBC driver. For more information, see JDBC V4.2 incompatible drivers.
  • Fence Intrinsics JEP 171
  • DocLint JEP 172
  • Nashorn JavaScript Engine JEP 174
  • Mechanical Checking of Caller-Sensitive Methods JEP 176
  • Optimize java.text.DecimalFormat.format JEP 177
  • Statically Linked JNI Libraries JEP 178
  • Document JDK API Support and Stability JEP 179
  • Handle Frequent HashMap Collisions with Balanced Trees JEP 180
  • HTTP URL Permissions JEP 184
  • Restrict Fetching of External XML Resources JEP 185
For detailed information about these JEPS, see http://openjdk.java.net/jeps/0.