In this detailed Resource page, we feature an abundance of Java 9 Tutorials!
Java (version 9) should include better support for multi-gigabyte heaps, better native code integration, a different default garbage collector (G1, for “shorter response times”) and a self-tuning JVM. In early 2016, the release of Java 9 was rescheduled for March 2017, later again postponed four more months to July 2017, and changed again to be finally available on September 21, 2017, due to controversial acceptance of the current implementation of Project Jigsaw by Java Executive Committee, which led Oracle to fix some open issues and concerns, and to refine some critical technical questions. In the last days of June 2017, Java Community Process expressed nearly unanimous consensus on the proposed Module System scheme.
- JSR 376: Modularization of the JDK under Project Jigsaw (Java Platform Module System)
- JEP 222: jshell: The Java Shell (a Java REPL)
- JEP 295: Ahead-of-Time Compilation
- JEP 268: XML Catalogs
- JEP 266: More concurrency updates. It includes a Java implementation of Reactive Streams, including a new Flow class that included the interfaces previously provided by Reactive Streams.
- JEP 193: Variable Handles: Define a standard means to invoke the equivalents of various java.util.concurrent.atomic and sun.misc.Unsafe operations
- JEP 282: jlink: The Java Linker: Create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image. It effectively allows to produce a fully usable executable including the JVM to run it.
- JavaDB was removed from JDK
- JEP 263: HiDPI Graphics: Automatic scaling and sizing
The first Java 9 release candidate was released on August 9, 2017. The first stable release was on September 21, 2017.
If you wish to build up your knowledge first, check out our Java 9 New Features Tutorial.
Simple examples & tutorials
- Java Servlet onclick Example
In this tutorial, we will explain and show you how to call a Servlet method on a button click.
- Java Servlet Sync Context Example
Async Servlet was introduced in Servlet
3.0. It is a great way to deal with the thread starvation problem with the long-running threads. In this tutorial, we will understand what Async Servlet is.
- Java Nio BufferOverflowException Example
In this tutorial, we will learn about the
BufferOverflowExceptionwhich is very common in the Java Nio package. But before moving ahead let’s take a look and understand the basics of the Java Nio package.
- JDeps Example
In this article we cover the JDeps tool using Java 9. We will use a simple multi-module maven project and demonstrate some usage scenario’s (filtering and aggregating) of JDeps using said project.
- Reactive Streams Example
This article will introduce us to the Java 9 Reactive Streams standard, core abstractions and a descriptive example that underscores how the abstractions in the standard cooperate to create reactive stream solutions.
- Annotations Example
In this article we will cover the topic of annotations by way of some theory and a brief example using Java 9. We will cover what they are, their properties, their purpose and different types.
- Regular Expressions Example
In this example we will explore the
java.util.regexpackage and the abstractions contained within it that facilitate the usage of regular expressions in Java 9.
- Docker Example
This article will introduce us to compiling and running a Java 9 example program using Docker technology. We will also cover the fundamental Docker commands.
- HttpClient Example
This example demonstrates the usage of the new Java Http Client bundled with JDK 9 via a program driven from the command line showcasing synchronous and asynchronous usage of the common HTTP methods.
- Compact Strings Example
In this tutorial we will learn about the evolution of Strings in Java to Compact Strings. In any of the Java applications Strings are used extensively.
- Immutable Collections Example
In this tutorial we will see another JDK 9 feature i.e. creating immutable collections in Java. Java 9 brings the long awaited approach for creating small unmodifiable Collection instances using a concise one line code.
- Default Garbage Collector Tutorial
This tutorial will introduce us to the new default garbage collector implementation for Java 9, the G1 garbage collector. The G1 garbage collector presents a brand new approach to heap layout and semantic behavior.
- Jshell Tutorial
In this article we will learn about Java 9 Jshell. The Java Shell tool (JShell) is an interactive tool for learning the Java programming language and prototyping Java code.
- Functional Programming Tutorial
In this tutorial we will learn about the introduction to Functional Programming in Java 9. The idea behind this approach was to combine Haskell programming language in Java.
- Repl Tutorial
In this example, I would like to show you how to get started with Java 9 REPL (The Java Shell: Read-Eval-Print Loop). Oracle site has excellent details of the features.
- Jigsaw Project Tutorial
In this tutorial we will get a brief introduction to the Java 9 Jigsaw feature by a way of a simple project. We will cover the mechanics of how the module system will work for new projects.