Java 10 is finally released today. ~~ Maybe ~~ I think it will be available for download from here ~~. http://jdk.java.net/10/
Here is a summary of the new features in Java 10 that have JEP. Java 10 new feature summary --Qiita
However, there are quite a few changes other than those with JEP. Here, we will summarize the API and other changes that are likely to have an impact on changes other than JEP. Extraction from here. Click here for more information. 109 New Features In JDK 10 - Azul Systems, Inc.
Click here to download OpenJDK JDK 10 GA Release
Click here to download the Oracle JDK Java SE Development Kit 10- - Downloads
getPid () method has been added to
java.lang.management.RuntimeMXBean to get the process ID.
import java.lang.management.ManagementFactory; long pid = ManagementFactory.getRuntimeMXBean().getPid(); System.out.println(pid);
By the way, considering readability, it is better not to use
var in such a case.
It is hard to say that "
var is fine because you can see that it is
long by looking at the definition of
Java 9 added
Runtime.version (), but the
Runtime.Version class it takes has changed according to the new versioning.
feature (), ʻinterim ()
, ʻupdate (),
patch () have been added, and
minor (), and
security () have been deprecated. ..
Runtime.Version version = Runtime.version(); System.out.printf("%d.%d.%d.%d%n", version.feature(), version.interim(), version.update(), version.patch());
In Java 9, the
transferTo method was added to
java.io.InputStream to allow transfer from ʻInputStream
to ʻOutputStream, but in Java 10 it was changed to
transferTo method has been added so that
Reader can also transfer to
var sr = new StringReader("abc\ndef\n"); var sw = new StringWriter(); sr.transferTo(sw); System.out.println(sw);
When using such a
new, you can see the type by looking at the right side, so I think that
var is fine.
copyOf method has been added to
java.util.Map to make copies of
List and so on.
var list = List.copyOf(List.of("aa", "bb", "cc"));
In the case of
List, it is an instance of
java.util.ImmutableCollections $ ListN, a private class that is also used in
List.of. If there are 0 to 2 elements, it will be an instance of a dedicated class such as List0.
If it was originally ʻImmutableCollections $ ListN`, as in this example, the given instance will be returned as is.
In JDK11, it seems to be unified to ListN.
By the way, it is delicate whether
copyOf can be received by
Other than that, ʻor ElseThrow (Supplier <Throwable>) is already available.
Java 10 added ʻorElseThrow ()
with no arguments. Theget ()
method throws an exception when ʻOptional has no value. Therefore, at the beginning of writing this article, I thought that ʻor ElseThrow ()
was unnecessary and omitted it, but in realityget ()
is properly aware that an exception is thrown. I had to use it, and I realized that I should use ʻor ElseThrow () instead of
Perhaps it seems that
get () may become Deprecated in the future.
toUnmodifiableMap have been added to
List<String> strs = Stream.of("aa", "bb") .collect(Collectors.toUnmodifiableList());
It doesn't matter if there are duplicates in
toUnmodifiableSet (), and one of them will be selected, but
toUnmodifiableMap () will throw
java.lang.IllegalStateException if there are duplicate keys.
Swing also changed! !! !!
JavaDoc summaries can now be written in multiple lines using the
Until now, even if the JVM was running with Docker, the number of CPUs and memory etc. ignored the Docker settings and returned the number of CPUs and memory size of the platform, but from Java 10 it will read the Docker settings. I did. This had an effect when using Hadoop, Spark, etc. with Docker even if Java was not mainly used, so many people may be grateful.
There were switches to choose between the 32-bit and 64-bit versions of the JVM, but these switches are gone as only the 64-bit version is available.
It was deleted
If there is a file called
* .conf in ʻINCLUDEDIR
, it will be included in krb5.conf`.
XMLInputFactory # newFactory () was incorrectly labeled with
@Deprecated, but it has been removed.
There is also such a thing.