Java Innovation Projects

Amber

The goal of Project Amber is to explore and incubate smaller, productivity-oriented Java language features that have been accepted as candidate JEPs under the OpenJDK JEP process. This Project is sponsored by the Compiler Group.

Most Project Amber features go through at least one round of Preview before becoming an official part of Java SE. See JEP 12 for an explanation of the Preview process, and our tutorial on how to use preview features. For a given feature, there are separate JEPs for each round of preview and for final standardization.

Learn more at Project Amber's Wiki, as well as Inside.java's Amber page.

Loom

Project Loom is to intended to explore, incubate and deliver Java VM features and APIs built on top of them for the purpose of supporting easy-to-use, high-throughput lightweight concurrency and new programming models on the Java platform. This is accomplished by the addition of the following constructs:

This OpenJDK project is sponsored by the HotSpot Group.

Learn more at Project Loom's Wiki, as well as Inside.java's Loom page.

Panama

We are improving and enriching the connections between the Java virtual machine and well-defined but “foreign” (non-Java) APIs, including many interfaces commonly used by C programmers.

To this end, Project Panama will include most or all of these components:

Learn more at Project Panama's Wiki, as well as Inside.java's Panama page.

Valhalla

The Valhalla Project is a venue to explore and incubate advanced Java VM and Language feature candidates such as "Inline types", generic specialization, enhanced volatiles, and possibly other related topics such as reified generics.

The three main goals are:

  1. Align JVM memory layout behavior with the cost model of modern hardware;
  2. Extend generics to allow abstraction over all types, including primitives, values, and even void;
  3. Enable existing libraries -- especially the JDK -- to compatibly evolve to fully take advantage of these features.

A number of people describe Valhalla recently as being "primarily about performance". While it is understandable why people might come to that conclusion -- many of the motivations for Valhalla are, in fact, rooted in performance considerations -- this characterization misses something very important. Yes, performance is an important part of the story -- but so are safety, abstraction, encapsulation, expressiveness, maintainability, and compatible library evolution.

Learn more at the Valhalla Project Wiki, as well as Inside.java's Valhalla page.

ZGC

The Z Garbage Collector, also known as ZGC, is a scalable low latency garbage collector designed to meet the following goals:

At a glance, ZGC is:

At its core, ZGC is a concurrent garbage collector, meaning all heavy lifting work is done while Java threads continue to execute. This greatly limits the impact garbage collection will have on your application's response time.

Learn more at the ZGC Wiki, as well as Inside.java's GC page.