Using a non-LTS version of Java now implies a commitment to update your software that uses the JDK every 6 month. If you don’t want to make this commitment, you should stick to the LTS versions, which means to stick with Java 8 or Java 11.

They had to postpone the release of Java 9 two times because of disagreements on the implementation of that feature with other influential members of the Java community. With JDK 11 (September ’18) you basically get 3 months until JDK 8 runs out of public updates. But I wouldn’t count on LTS beeing 5 years and longer as we have seen in the past. So you should get used to the idea of more regular updates of your JDK. For us it is difficult due to many dependencies to other 3rd. Party libraries which might not be available for the new version of the JDK. In general we intend to do updates unless a major update with lots of API changes is preventing us from doing so.

Oracle Java SE 9 – an Update

The file extension names of this programming language are .java or .class. So Java 8 was delayed because of lambdas, Java 9 was delayed because of Jigsaw.

The module system is key to making JDK more flexible which means developers can bundle just those parts of the JDK that are needed to run an application when deploying to the cloud. Code caching has always been a strategy used to make applications faster and smoother over the years. However, it isn’t without its limitations, and this has not gone unnoticed. An update in Java 9 clearly shows JDK 9 dividing cached codes into smaller parts thus improving overall performance. JDK 9 uses special iterators to skip non-method code; to separate profiled, non-profiled and non-method code; and improving some benchmarks for execution time. The very first one is the Java 9 concurrency updates which have Java.util.concurrent.Flow and CompletableFuture. Flow is Java’s implementation of the Reactive Streams API which essentially aims to solve the backpressure problem.

The timing of Java SE 9

As such the JDK and JRE loose their distinct character and become just two possible points in a spectrum of module combinations. If you run it with the parameter -jdkinternals, it will output all internal APIs your project uses – exactly the ones which you will have to deal with before Java 9 rolls around.

Does Java SE cost money?

What is the cost of a Java SE Subscription? Desktop pricing is $2.50 per user per month, or lower with tiered volume discounts. Processor pricing for use on Servers and/or Cloud deployments is $25.00 per month or lower. Please see the Oracle Java SE Subscription Price List (PDF) for more information.

Recommending Java 10 is probably a bad idea if you cannot upgrade to Java 11 immediately when it is out. Java 8 should remain the recommended version for people who cannot afford to upgrade every 6 months. Apparently in the future Oracle wants to release a LTS version every three years or every 6th release, so the next LTS release to be expected after Java 11 is Java 17 in September 2021. By the way, there is no such thing as “JDK 1.9” or “1.10”. Even the java.version system property says “9” or “10” (well, now it says “10.0.1”.

most favorite NetBeans features

If we run the application with modules containing the same packages, we’ll simply crash. This small improvement eliminates the possibility of unpredictable behavior connected with Split Packages downloading. Automatic Modules – these are modules with open access created automatically by Java from JAR files. Let’s say we want to run our application in java se 9 certification a modular mode, but it uses some library. In this case, we put the JAR file on – – module-path and Java automatically creates a module with the name inherited from the name of the JAR file. Also, modularity is about encapsulation and security, as we can make the implementation privateand exclude the possibility of unauthorized reflection access.