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.
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
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.
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
JEP 321: HTTP Client (Standard)
On dit que cela prend en charge Modan APi, HTTP2, WebSocket, Reactive.
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.
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