Nouveautés de Java 9,10,11

introduction

Salut, c'est @chan_kaku! Cette fois, j'expliquerai les API et fonctions ajoutées dans Java 9 à 11 pour ceux qui envisagent de migrer de Java 8 vers Java 11.

Java9 Veuillez consulter ici pour les nouvelles fonctionnalités de Java9.

Système de module

Dans Java 9, il y avait un projet appelé Project Jigsaw. Les détails peuvent être trouvés sur le lien ci-dessous À propos de Project Jigsaw En d'autres termes, les quatre points suivants étaient les objectifs de ce projet

Make it easier for developers to construct and maintain libraries and large applications

Facilite la maintenance des bibliothèques et des applications volumineuses

Improve the security and maintainability of Java SE Platform Implementations in general, and the JDK in particular

Amélioration de la sécurité et de la maintenabilité de la plate-forme Java SE

Enable improved application performance

Amélioration des performances des applications

Enable the Java SE Platform, and the JDK, to scale down for use in small computing devices and dense cloud deployments.

La plate-forme Java SE et le JDK peuvent être réduits pour une utilisation dans des appareils informatiques à faible performance et des déploiements cloud denses

Pour résoudre ces problèmes, Java 9 a introduit un système de modules.

Le système de modules est expliqué en détail dans Around here.

En d'autres termes, lors de l'utilisation des membres publics et protégés d'un autre module (bibliothèque), ou lors de l'utilisation des membres publics et protégés pour un autre module, il est nécessaire de préparer un fichier appelé module-info.java. Ce système de modules facilite plus que jamais la compréhension des dépendances des modules et des structures hiérarchiques.

Java10 Les nouvelles fonctionnalités de Java 10 sont résumées dans ici. Je vais choisir les fonctions qui me tiennent à cœur

Inférence de type

JEP 286: Local-Variable Type Inference

Il s'agit d'une fonction d'inférence de type pour les variables locales

sample.java


var list = new ArrayList<String>();  // infers ArrayList<String>
var stream = list.stream();          // infers Stream<String>

En Java, si vous utilisez cette variable pour quoi que ce soit, vous ne connaîtrez pas bien le type, donc je n'ai pas l'impression que vous l'utilisez si souvent, mais vous pouvez l'utiliser si le type est spécifié à droite comme décrit ci-dessus. N'est-ce pas?

Java11 Comme d'habitude, les nouvelles fonctionnalités de Java 11 sont résumées dans ici. Je voudrais en ramasser quelques-uns.

Restrictions d'accès aux classes imbriquées

JEP 181: Nest-Based Access Control

Il est indiqué ici que l'accès privé de Nestmates est restreint en tant que règle d'accès JVM. À propos, la contrainte imbriquée qui est sortie ici est définie comme suit

A field or method R is accessible to a class or interface D if and only if any of thefollowing conditions are true: ・ R est privé et est déclaré dans une classe ou une interface différente C, et C et D sont des compagnons de nidification.

C'est la même chose pour l'utilisateur, mais quand j'utilise du code octet, j'ai lu une méthode que je ne comprenais pas jusqu'à présent, et maintenant c'est ce que je voulais. C'est comme ça

Client HTTP

JEP 321: HTTP Client (Standard)

On dit que cela prend en charge Modan APi, HTTP2, WebSocket, Reactive.

Inférence de type

JEP 323: Local-Variable Syntax for Lambda Parameters

Cela dit que l'inférence de type, qui a également été expliquée dans Java 10, peut désormais être utilisée comme paramètre pour les expressions lambda.

finalement

Diverses fonctionnalités ont été ajoutées dans Java 9 ~ 11, mais personnellement, j'ai l'impression que ce n'est pas grave si vous maintenez les zones présentées ici. Si vous ne connaissez pas cette fonctionnalité, veuillez commenter!

Recommended Posts

Nouveautés de Java 8
Nouveautés de Java 9,10,11
Gardons cela à l'esprit Quoi de neuf dans Java 9
Quoi de neuf dans Apache Camel 2.19.0
Partition en Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
J'ai essayé le nouveau yuan à Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Résumé des nouvelles fonctionnalités de Java 12
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Résumé des nouvelles fonctionnalités de Java 13
Commentaires dans la source Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Résumé des nouvelles fonctionnalités de Java 10
Utiliser PreparedStatement en Java
Résumé des nouvelles fonctionnalités de Java 14
Exécution parallèle en Java
[Java] Nouvelle méthode de génération de threads (2)
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Essayez d'appeler JavaScript en Java
Essayez de développer Spresense avec Java (1)
J'ai fait une roulette à Java.
Nouvelles fonctionnalités de Java7 à Java8
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java
Ecrire des rappels de vol en Java
Analyse de sujets (LDA) en Java
Importer des données Excel avec Java 2