The current Java is significantly different from Java 8 and earlier with regard to the JDK and the JRE. Much of these changes are related to modularity and have been covered in other chapters. There are still a few more things you should consider.
Runtime image changes
Java version schema
With Java 9, the way the Java platform's version is displayed has changed. Here is an example of a Java 8 version format:

Now let's look at how Java 9 reports its version:

As you can see, with Java 9, the version schema is $MAJOR.$MINOR.$SECURITY.$PATCH. This is markedly different from previous versions of Java. This will only impact your applications if you have code that parses the string returned by the java -version command...