---
title: "Features of Java 9, 10, 11. What's New?"  
description: "Java 9, 10, and 11 introduced several new features and improvements to the Java platform."  
author: "Ashutosh Patel"  
published: 2024-07-22  
updated: 2024-07-22  
canonical: https://www.mindstick.com/articles/336471/features-of-java-9-10-11-what-s-new  
category: "java"  
tags: ["java", "features", "java applications"]  
reading_time: 3 minutes  

---

# Features of Java 9, 10, 11. What's New?

Java 9, 10, and 11 brought many new [features and improvements](https://www.mindstick.com/forum/160436/what-are-the-key-features-and-improvements-in-dot-net-core-6) to the Java platform. Here is a list of the main [features introduced](https://www.mindstick.com/forum/160961/what-are-the-key-features-introduced-in-java-8) in each version:

#### Java 9 Features

## Module System (Project Jigsaw)

- He introduces the JDK and the Java Platform Module System (JPMS) for modularizing applications.
- It allows developers to create modular applications for better scalability, maintainability and performance.

## JShell (Java Shell)

- An interactive REPL (Read-Eval-Print Loop) tool for generating Java code snippets and testing the Java API.

## Improved Process API

- Enhanced API for monitoring and managing business process settings.
- It introduces the `ProcessHandle` class for accessing and managing native processes.

## HTTP/2 client

- Native support for HTTP/2 in the java.net.http package.
- It provides a modern HTTP client API with support for WebSocket and [asynchronous programming](https://answers.mindstick.com/qa/111793/what-are-the-differences-between-synchronous-asynchronous-programming-and-when-should-i-use-each).

**Private [Methods in Interfaces](https://www.mindstick.com/forum/160958/what-are-default-and-static-methods-in-interfaces-in-java)**

- Now interfaces can have private methods, which allow code to be reused without exposing them as part of the interface's public API.

## Enhanced Stream API

- Adds several new methods such as takeWhile, dropWhile, and ofNullable to the Stream API.

## Multi-Release JAR Files

- The ability to create a JAR file with separate class files for different versions of Java, allowing libraries to be created with different versions of Java.

#### Java 10 Features

## Local Variable Type Inference (var keyword)

- It allows estimation of the characteristics of local variables, reducing the speculation.\

**Example-** `var list = new ArrayList<String>();`

## Parallel Full GC for G1

- Enhances Garbage-First (G1) [garbage collection](https://www.mindstick.com/interview/2451/what-is-garbage-collection) with parallel accuracy of garbage collection.

## Application Class-Data Sharing

- It improves startup time and reduces memory footprint by sharing common class metadata across JVM instances.

## Experimental Features

- It results in the `-XX:+UseDynamicNumberOfCompilerThreads` option for testing dynamic compiler thread allocation.

#### Java 11 Features

## HTTP Client (Standard)

- Introduced in Java 9 (java.net.http), the HTTP client is standard as part of the JDK.

\
**Local-Variable [Syntax for Lambda](https://www.mindstick.com/forum/33876/what-is-the-syntax-for-lambda-expressions-in-vb-dot-net) Parameters**

- Allow `var` to be used in [lambda expressions](https://www.mindstick.com/forum/159874/what-are-lambda-expressions-and-how-are-they-used-in-linq-queries) to declare local variables.

## Epsilon [Garbage Collector](https://www.mindstick.com/forum/155585/what-is-garbage-collector)

- It introduces a no-op garbage collector (`-XX:+UseEpsilonGC`) that is useful for [performance testing](https://yourviews.mindstick.com/view/85939/performance-testing-ensuring-software-speed-and-efficiency) and situations where garbage collection is not required.

## Launch Single-File Source-Code Programs

- It allows you to execute the java source file directly with the java command without compiling it explicitly.

## ZGC (Experimental)

- It introduces the Z Garbage Collector (-XX:+UseZGC) as an experimental feature, aimed at low latency applications.

## TLS 1.3 Support

- It adds support for TLS 1.3, the latest version of the Transport Layer Security Protocol, which provides improved [security and performance](https://yourviews.mindstick.com/view/84076/wordpress-proposal-to-improve-security-and-performance-of-plugins).

**Deprecates** `java.xml.ws` **and** `java.xml.bind` **modules**

- Obsolete modules from Java EE, mean a move to the much more modular and lightweight Java SE platform.

\
This version of Java brings significant improvements in modularity, performance, developer productivity, and security, demonstrating Oracle's commitment to the development of the Java platform.

---

Original Source: https://www.mindstick.com/articles/336471/features-of-java-9-10-11-what-s-new

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
