
Most JDK binaries are based on the OpenJDK codebase, including the Oracle JDK.
Flight Recorder: A profiling and monitoring tool with a very low-overhead used to record events originating from Java applications and the OS. Removed modules that contain CORBA and Java EE technologies such as JAX-WS and JAXB. Local-Variable Syntax for Lambda Parameters: The var keyword can be used when declaring the formal parameters of implicitly typed lambda expressions. Added the ability to launch single-file source-code programs: useful in the early stages of learning Java, and when writing utility programs. Performance optimization for the G1 garbage collector by using a Parallel Full GC New APIs for creating unmodifiable collections such as pyOf, Set.copyOf, and Map.copyOf var set = new HashSet() is now a valid expression.Ī new method orElseThrow has been added to the Optional class Local-Variable Type Inference using the keyword var, a way to automatically deduce the type of a local variable without declaring it. G1 is made the default garbage collector. Factory methods for collections, such as Set.of and List.of. Introduction of the Reactive Streams compliant Flow API. They can be used for example by the default methods of an interface to refactor code Private methods can be defined in interfaces. Multi-Release JAR Files: Enables multiple, Java release-specific versions of class files to coexist in a single archive. Can be used to interactively evaluate input code and print the results
jshell is a Read-Eval-Print Loop (REPL) tool for the Java platform.The jlink tool is used to assemble modules and their dependencies into a reduced runtime package, and perform optimizations during the new link time phase after the compile time phase.The JDK itself has been divided into a set of modules The Java Platform Module System introduces a new kind of Java programing component, the module, which is a named, self-describing collection of code and data.Key features and changes since Java 8 Java 9