Récapitulatif des modifications autres que JEP de Java10

Java 10 est enfin disponible aujourd'hui. ~~ Peut-être ~~ Je pense qu'il sera disponible pour téléchargement à partir d'ici ~~. http://jdk.java.net/10/

Voici un résumé des nouvelles fonctionnalités de Java 10 qui ont JEP. Résumé des nouvelles fonctionnalités de Java 10 - Qiita

Cependant, il y a pas mal de changements autres que ceux avec JEP. Ici, nous résumerons l'API et d'autres changements susceptibles d'avoir un impact sur des changements autres que JEP. Extraction d'ici. Cliquez ici pour plus d'informations. 109 New Features In JDK 10 - Azul Systems, Inc.

Cliquez ici pour télécharger OpenJDK JDK 10 GA Release

Cliquez ici pour télécharger le JDK Oracle Java SE Development Kit 10- - Downloads

Modifications de l'API

Obtenir l'identifiant du processus

La méthode getPid () a été ajoutée à java.lang.management.RuntimeMXBean pour obtenir l'ID du processus.

import java.lang.management.ManagementFactory;

long pid = ManagementFactory.getRuntimeMXBean().getPid();
System.out.println(pid);

En passant, compte tenu de la lisibilité, il vaut mieux ne pas utiliser «var» dans un tel cas. Il est difficile de dire: "Si vous regardez la définition degetPid (), vous pouvez voir qu'elle est longue, donc vous pouvez utiliser var."

Obtenir la version

Java 9 a ajouté Runtime.version (), mais la classe Runtime.Version utilisée a changé en fonction du nouveau contrôle de version. feature (), ʻinterim () , ʻupdate (), patch () ont été ajoutés, et major (), minor (), security () sont maintenant obsolètes. ..

Runtime.Version version = Runtime.version();
System.out.printf("%d.%d.%d.%d%n",
        version.feature(), version.interim(), version.update(), version.patch());

Transférer du lecteur à l'écrivain

Dans Java 9, la méthode transferTo a été ajoutée à java.io.InputStream pour permettre le transfert de ʻInputStream vers ʻOutputStream, mais dans Java 10, elle a été changée en java.io.Reader. La méthode transferTo a été ajoutée afin que Reader puisse également transférer vers Writer.

var sr = new StringReader("abc\ndef\n");
var sw = new StringWriter();
sr.transferTo(sw);
System.out.println(sw);

Lorsque vous utilisez un tel new, vous pouvez voir le type en regardant le côté droit, donc je pense que var est bien.

Créer une copie immuable de List / Set / Map

La méthode copyOf a été ajoutée à java.util.List, java.util.Set et java.util.Map pour faire des copies de List et ainsi de suite.

var list = List.copyOf(List.of("aa", "bb", "cc"));

Dans le cas de List, il s'agit d'une instance de java.util.ImmutableCollections $ ListN, une classe privée également utilisée dans List.of. S'il y a 0 à 2 éléments, ce sera une instance d'une classe dédiée telle que List0. S'il s'agissait à l'origine de ʻImmutableCollections $ ListN`, comme dans cet exemple, l'instance donnée sera retournée telle quelle. Dans JDK11, il semble être unifié à ListN. http://hg.openjdk.java.net/jdk/jdk/rev/a14ede52a278

À propos, il est délicat de savoir si «copyOf» peut être reçu par «var».

Optinal / OptionalInt Autre ouElseThrow ()

ʻOptionalA part ça, ʻou ElseThrow (Supplier <Throwable>)est déjà disponible. Java 10 a ajouté ʻou ElseThrow () sans arguments. La méthode get () lève une exception lorsque ʻOptional n'a pas de valeur. Par conséquent, au début de la rédaction de cet article, j'ai pensé que ʻou ElseThrow () était inutile et je l'ai omis, mais en réalité get () est bien conscient qu'une exception est lancée. J'ai dû l'utiliser, et j'ai réalisé que je devais utiliser ʻou ElseThrow () au lieu deget (). Peut-être qu'il semble que «get ()» devienne obsolète à l'avenir.

Génération de listes / ensembles / cartes immuables à partir du flux

toUnmodifiableList, toUnmodifiableSet et toUnmodifiableMap ont été ajoutés à java.util.stream.Collectors.

List<String> strs = Stream.of("aa", "bb")
        .collect(Collectors.toUnmodifiableList());

toUnmodifiableSet () n'a pas d'importance s'il y a des doublons, et l'un d'eux est sélectionné, maistoUnmodifiableMap ()lance java.lang.IllegalStateException s'il y a des clés en double.

javax.ButtonModel#getGroup()

Le swing a également changé! !! !!

Autres changements

{@ Summary} Balise JavaDoc

Les résumés JavaDoc peuvent désormais être écrits sur plusieurs lignes à l'aide de la balise {@Summary}.

Compatible Docker

Jusqu'à présent, même si la JVM fonctionnait avec Docker, le nombre de processeurs et de mémoire, etc. ignorait les paramètres Docker et renvoyait le nombre de processeurs et la taille de la mémoire de la plate-forme, mais à partir de Java 10, il lira les paramètres de Docker. J'ai fait. Cela a eu un effet lors de l'utilisation de Hadoop, Spark, etc. avec Docker, même si je n'utilisais pas principalement Java, tant de gens peuvent être reconnaissants.

-d32 Supprimé -d64

Il y avait des commutateurs à choisir entre les versions 32 bits et 64 bits de la JVM, mais ces commutateurs ont disparu car seule la version 64 bits est disponible.

Supprimer l'outil de stratégie

Il a été supprimé

Paramètres Kerberos

S'il y a un fichier appelé * .conf dans ʻINCLUDEDIR, il sera inclus dans krb5.conf`.

Ce qui était obsolète par erreur est de retour

Le @ Deprecated a été incorrectement ajouté à XMLInputFactory # newFactory (), mais il a été supprimé. Il y a aussi une telle chose.

Recommended Posts

Récapitulatif des modifications autres que JEP de Java10
Résumé du support Java 2018
[Java] Résumé des expressions régulières
[Java] Résumé des opérateurs (opérateur)
Résumé des bases du langage Java
Résumé de la classe Java Math
[Java] Résumé de la syntaxe de contrôle
Résumé du traitement des erreurs Java
[Java] Résumé des modèles de conception
[Java] Résumé des opérations mathématiques
Spring Framework 5.0 Résumé des principaux changements
[Pour les débutants] Résumé du constructeur java
Résumé du package [Java Silver Study]
Résumé de la programmation orientée objet utilisant Java
[Java Silver] Résumé des points de modification d'accès
Résumé de la session d’étude interne des recrues [Java]
[java] Résumé de la gestion des caractères
[Java] Résumé personnel des instructions conditionnelles (basique)
[Java] [Maven3] Résumé de l'utilisation de Maven3
Résumé Java des conversions de types fréquemment recherchées
Résumé de Java Math.random et import (calendrier)
Résumé des connaissances Java
[java] Résumé de la gestion des chaînes de caractères
Résumé des génériques Java
Récapitulatif des paramètres de l'environnement Java pour moi-même [mac]
[Java] Résumé de la façon d'omettre les expressions lambda
Résumé relatif à Java
Changements dans Java 11
Résumé du document Java 8
Un exemple où il est plus rapide d'utiliser l'addition que d'utiliser StringBuilder (Java)
Résumé du document Java 11
[Java] Présentation de Java
[Java] Résumé de base de Java non couvert par Progate ~ Partie 1 ~
C'est pratique! Résumé de la bibliothèque Java populaire + α
[Java Silver] Résumé des points liés aux expressions lambda
Résumé des révisions (nouveaux problèmes de yuan) par version Java
[java.io] Résumé de l'entrée de chaîne Java (InputStream, Reader, Scanner)
Résumé des connaissances requises pour réussir Java SE8 Silver
Résumé de l'API de communication Java (1) Comment utiliser Socket
Résumé de l'API de communication Java (3) Comment utiliser SocketChannel
Résumé de l'API de communication Java (2) Comment utiliser HttpUrlConnection
Résumé de la mise en œuvre des arguments par défaut en Java
Résumé des méthodes de lecture de fichiers pour chaque format de fichier Java
Caractéristiques prévues de Java
Résumé des nouvelles fonctionnalités de Java 12
[Java] Importance de serialVersionUID
Changements de Java 8 à Java 11
3ème résumé efficace de Java
Avis sur Java Shilber
Résumé des nouvelles fonctionnalités de Java 13
Résumé des sources OpenJDK
java --Unification des commentaires
vue d'ensemble du fichier jar
Java statique [Résumé personnel]
Histoire des annotations Java
Résumé sur la sécurité de l'information
Résumé de l'utilisation de FragmentArgs
java (mérites du polymorphisme)
Résumé des threads sûrs ~ Java ~