Saturday, December 9, 2017

What is new with Java 9

Being a Java professional, if you were waiting for the big news then finally here it is - Java 9 has been released into the technical workspace recently and the features embedment is just amazing. In this article, we will take a quick tour of the new features introduced in Java 9 and how they can help you in getting your programming skills better.

The modularization with project Jigsaw

After the release of Java 8, Lambdas and improved APIs functionalities changed the daily life of the Java developers. However, one feature that was awaited since a long time to become the highlight of freshly released Java 9 version i.e. modularization with the project jigsaw.

Before modularization, JDK was defined as a programming environment with various undesirable dependencies between different areas of implementation. There was a quick need to eliminate all of these dependencies to get a more modular Java program.

The Jigsaw module system helped in starting compilation with base module only. The Java applications can be started by installing base modules only that are actually needed by the program, not any other undesirable module components. In this way, it will enhance overall runtime and compile-time capabilities with the reliable configuration setting enhanced encapsulation mechanism.

With Java 9, you would be able to design your own modules with the declaration of multiple packages inside. Let us see a quick example, how to create or define modules in Java 9 version.



In this example, we have been used two keywords “exports” and “requires” with significantly different purposes. The “Exports” keyword will tell you about the packages you wanted to show to the outside world. At the same time, the “requires” keyword signifies about the packages you need from the outside. The concept may be a little bit confusing at first glance, but it goes really interesting with practical implementation.

Modules can also be used as classical JAR files inside classpath. In Java 9, modularization concept has replaced the keyword “classpath” with “modulepath” where you can find all the modules declared by you.

Domain-driven design with Java 9

With the introduction of modularization in Java 9, it has become possible for the developers to make software architecture better and more expressive. Now the layers in software architecture can be defined as modules and each of the interfaces can be defined more precisely as compared to the past.

This would be easy for the compiler as well to detect or prevent the architecture violations. Let us have a quick look on domain-driven design with Java 9 –