I tried to find out what changed in Java 9

Java 9 official release

Java 9 was released in September 2017. Java 8 was released in March 2014, so it's been a major update for about three and a half years. I feel like I was late, but I decided to summarize Java 9 as a study memo. I haven't covered all the changes, so I'm picking up only the parts that I think are important.

End of support for older OS

From Java9, it is no longer provided for 32-bit OS. Be careful with servers running on 32-bit OS with Windows Server 2012 or earlier. There are still many development sites (especially large-scale business applications) that are developing with Windows 7 32bit, but in reality, are you all migrating to 64bit?

REPF tool

It's easy to understand for those who have used Python, but Java has come to do various things from the command line. REPF is an abbreviation for Read-eval-print-loop. Type jshell on the command line and run it with System.out.println ("Hello World"); to see the results. If it is a simple sample program, you can save the trouble of creating a class and checking the operation.

Unicode 8.0 support

I don't think there are many opportunities to use pictograms in business applications, but with Unicode-8.0 support this time, it has become possible to use a wide range of new characters. The range of smartphones such as Android apps may expand!

Random number generation enhancement (DRBG)

Until now, there were two types: the Java standard Random function (java.util.Random) and the Secure Random function (java.security.Random), which provides a cryptographically enhanced random number generator (RNG). In addition to this, the DRBG added this time is a random number generator defined in NIST-800-90Arl. NIST is also used by US government agencies in what is called the National Institute of Standards and Standards.

SHA-3 compatible

This is compatible with the hash algorithm SHA-3 as an enhancement of security support. SHA-3 is also defined by NIST like DRBG above.

Java applet deprecation

Java applets are rarely seen these days, but they have finally been officially deprecated in Java 9.

Modular system "Project Jigsaw"

I think it can be said that it is all about Java 9. The history of Jigsaw, a modular system, began in 2009. Over a long period of time, great and awesome people were finally released on Java 9 with blood, sweat and tears. (I don't know if I shed blood, sweat and tears.)

What is a module in the first place? .. ..

Modules are English words that mean functional units and interchangeable components. It is a part that has a group of functions that form a part of the system, and the specifications of the joint (interface) to the system and other parts are standardized and standardized so that it can be easily added or replaced. Means that.

Reference: IT Glossary

You can think of it as a unit that summarizes the system in functional units. In Java, functions are grouped in groups called packages. Then, a mechanism is used to create a JAR file by collecting packages and provide it as a library.

Is it useless until now? What's the problem?

  1. Visibility cannot be set for each function Since visibility cannot be set for each function (Jar unit), it is possible that something that should be used only in the A system is unexpectedly used in the B system and an unexpected exception occurs.

  2. Dependencies between libraries cannot be set If you need a1.jar, a2.jar and multiple jar files to use a certain a.jar, the developer needs to investigate and find out which jar file is missing each time. There is. To solve this problem, jigsaw now defines and sets module dependencies, saving developers the trouble of finding out which library they need.

That's why package management!

Jigsaw was created over a long period of time to solve the problem described above. By expanding the range that can be hidden in private, the range that can be published is expanded, and by solving the library dependency problem that is troubled every time in environment construction, the initial development can be accelerated, which is convenient (should).

Finally

Since it has just been released, there may be few places to adopt Java 9 in business, but I think that it is a good time for new products to be developed and those who are studying Java from now on, so please use Java 9 by all means. please look! And I'd be happy if you could tell me various things m (_ _) m ← Other power application

I haven't studied enough yet and the content is thin, but thank you for reading to the end. I think there are some mistakes, so I would appreciate it if you could point out.

Recommended Posts

I tried to find out what changed in Java 9
I tried to implement deep learning in Java
I tried to output multiplication table in Java
I tried to create Alexa skill in Java
I tried to implement Firebase push notification in Java
# 2 [Note] I tried to calculate multiplication tables in Java.
I tried to create a Clova skill in Java
I tried to implement the Euclidean algorithm in Java
I tried to interact with Java
I tried using JWT in Java
I tried to summarize Java 8 now
I tried using Dapr in Java to facilitate microservice development
I tried to make a client of RESAS-API in Java
I tried using Elasticsearch API in Java
I tried to summarize Java lambda expressions
I tried the new era in Java
I tried setting Java beginners to use shortcut keys in eclipse
What is Docker? I tried to summarize
What Java programmers find useful in Kotlin
I tried to make a talk application in Java using AI "A3RT"
I want to find out what character the character string appears from the left
I tried to implement polymorphic related in Nogizaka.
I want to send an email in Java.
I tried to organize the session in Rails
java I tried to break a simple block
I wanted to make (a == 1 && a == 2 && a == 3) true in Java
rsync4j --I want to touch rsync in Java.
What I learned in Java (Part 2) What are variables?
I tried to build Micra mackerel in 1 hour!
I tried to develop an application in 2 languages
I tried to break a block with java (1)
Things to watch out for in Java equals
Ruby: I tried to find out where Nokogiri goes to see the encoding himself
I tried what I wanted to try with Stream softly.
I tried Mastodon's Toot and Streaming API in Java
I tried to organize the cases used in programming
I want to do something like "cls" in Java
I tried to implement TCP / IP + BIO with JAVA
[Java 11] I tried to execute Java without compiling with javac
I tried using Google Cloud Vision API in Java
[Java] I tried to solve Paiza's B rank problem
I tried to operate SQS using AWS Java SDK
I want to use ES2015 in Java too! → (´ ・ ω ・ `)
Things to watch out for in future Java development
What I learned in Java (Part 3) Instruction execution statement
I tried to implement Stalin sort with Java Collector
What I learned when building a server in Java
[Java] I tried to implement Yahoo API product search
I tried using an extended for statement in Java
I tried passing Java Silver in 2 weeks without knowing Java
I tried to explain Effective Java 3rd edition "almost all chapters" in "easy-to-read Japanese".
First AWS Lambda (I tried to see what kind of environment it works in)
What I researched about Java 8
What I researched about Java 6
I made roulette in Java.
What I researched about Java 9
Cannot find javax.annotation.Generated in Java 11
I tried Drools (Java, InputStream)
Find a subset in Java
I tried using Java REPL
I tried to verify yum-cron