Java Development Kit (JDK) 28, a non-LTS (Long-Term Support) or “feature release” of standard Java due in March 2027, has snagged its fifth proposed feature, the deprecation of the macOS/x64 port for removal in a future release.
The other four features proposed to target JDK 28 include a simple JSON API, a preview of value objects, switching the default mode of the Shenandoah garbage collector to generational mode, and a preview of strict field initialization in the Java Virtual Machine (JVM).
As a non-LTS release, JDK 28 will be backed by six months of support by Oracle.
The deprecation of the macOS/x64 port, with the intent to remove it in a future release, was proposed in order to reduce maintenance costs. Maintaining the port is a significant burden, the proposal states. Because Apple has transitioned its hardware products to the AArch64 processor architecture and is phasing out support for x64, Oracle engineers will stop maintaining the macOS/x64 port as of JDK 27.
The four features previously targeted to JDK 28 include the following:
- The simple JSON API proposal defines a simple, standard API for parsing and generating JSON documents so that doing so does not require an external library. The intent is to enable many JSON processing tasks to be accomplished with little coding. A standard means would be provided in the Java platform to process JSON Data Interchange Format with minimal ceremony.
- Introduce value objects, which are immutable and lack object identity. Value objects are distinguished by the values of their fields, and can be represented by the JVM in ways that improve performance. A goal of the feature is to give developers a programming model for immutable data in which the
==operator, and all other operations, distinguish objects by the values of their fields rather than their identities. Value objects is a preview language and VM feature. - Switch the default mode of the Shenandoah Garbage Collector (GC) to the generational mode and deprecate the non-generational mode, with the intent to remove it in a future release. Goals include signaling the intent that future development will focus on generational mode, and reducing the maintenance cost of supporting two different modes. However, it is not a goal to remove non-generational mode at this time.
- Introduce strictly-initialized fields in the JVM. Such fields must be initialized before they are read, thus default values such as
0ornullare never observed. For strictly-initialized fields that are final, the same value is always observed. A goal is offering designers of JVM-based programming languages a model for field initialization, which has stronger integrity guarantees than the present model. This is a preview VM feature.
The predecessor to JDK 28, JDK 27, is due September 15. JDK 27 also is a non-LTS release that will be backed by six months of support by Oracle.