Java 10 is out now, just a few months after the major Java 9 release brought us modularity, jshell and the G1 garbage collector. It is the first in the new system of smaller, incremental releases. It is also the first to be named after its release date. Under the new versioning system releases will be named in the format ‘Java YY.M’. So Java 9 is also known as Java 18.3, because it was released in March 2018. This release system is only for Java SE, and does not include Java EE.
What is new in Java 10?
Aside from the change to the naming system, Java 10 has seen the full code base moved into a single repository. Java 9 had 8 separate repos, but these have now been combined. Root certificates are also being open-sourced, with the intention of making OpenJDK builds more attractive to developers.
As expected, there are less new major features than in Java 9. But there are several additions that are worth noting:
- Local Variable Type Interface
- Parallel Full GC for G1
- Thread-Local Handshakes
- Experimental Java-Based JIT Compiler
The biggest change is the first in the list, which introduces the var keyword to the language. As with other statically typed languages like C# and Scala, you will no longer need to specify a type when declaring local variables. There are also some improvements to memory, with changes to garbage collection and the introduction of thread-local handshakes.
This month we will be publishing a series of articles on these new features, explaining what they are and how they will affect you if you choose to move to Java 10. If there is a feature you would like us to write a post on, let us know in the comments.