Maison  >  Article  >  Java  >  Quelles sont les nouvelles fonctionnalités de jdk8

Quelles sont les nouvelles fonctionnalités de jdk8

清浅
清浅original
2019-04-24 17:40:3534060parcourir

Les nouvelles fonctionnalités du JDK 8 incluent : l'introduction d'expressions Lambda, la fourniture de l'API Stream, l'activation du client TLS 1.2, la prise en charge de l'algorithme AEAD, une sécurité accrue, un nouveau thème Modena, de nouveaux packages, etc.

Quelles sont les nouvelles fonctionnalités de jdk8

Quoi de neuf dans JDK 8

Java Platform, Standard Edition 8 est une version majeure riche en fonctionnalités. Ce document résume les fonctionnalités et améliorations de Java SE 8, JDK 8 et l'implémentation de Java SE 8 par Oracle. Cliquez sur le nom d'un composant pour obtenir une description plus détaillée des améliorations apportées au composant.

Langage de programmation Java

  • Les expressions Lambda sont une nouvelle fonctionnalité du langage qui a été introduite dans cette version. Cette fonctionnalité vous permet de traiter les fonctions comme des paramètres de méthode ou le code comme des données. À l'aide d'expressions lambda, vous pouvez représenter de manière plus concise des instances d'interfaces à méthode unique (appelées interfaces fonctionnelles).

  • Les références de méthodes fournissent des expressions lambda faciles à comprendre pour les méthodes qui ont déjà des noms.

  • Les méthodes par défaut permettent d'ajouter de nouvelles fonctionnalités aux interfaces de la bibliothèque et assurent la compatibilité binaire avec le code écrit pour les anciennes versions de ces interfaces.

  • Les annotations en double prennent en charge l'application du même type d'annotation plusieurs fois à la même déclaration ou à la même utilisation de type.

  • Les annotations de type prennent en charge l'application d'annotations partout où un type est utilisé, pas seulement les déclarations. Lorsqu'elle est combinée avec le système de type enfichable, cette fonctionnalité améliore la vérification du type de votre code.

  • Inférence de type améliorée.

  • Réflexion des paramètres de la méthode.

Collection

  • La nouvelle classe java.util.stream du package fournit une API Stream qui prend en charge les flux de les éléments effectuent des opérations fonctionnelles. L'API Stream est intégrée à l'API Collections et peut effectuer des opérations par lots sur les collections, telles que des transformations de réduction de mappage séquentielles ou parallèles.

  • Améliorations des performances pour HashMap avec conflits de clés

Profil compact

Inclut Java SE Un prédéfini sous-ensemble de la plate-forme et prend en charge les applications qui ne nécessitent pas que la plate-forme entière soit déployée et exécutée sur de petits appareils.

Sécurité

  • Activer le client TLS 1.2 par défaut

  • Nouvelles modifications apportées au corps AccessController.doPrivileged prend en charge le code affirmant un sous-ensemble de ses autorisations sans empêcher la traversée complète de la pile pour vérifier les autorisations supplémentaires

  • Algorithmes de chiffrement basés sur un mot de passe plus puissants

  • Serveur JSSE Prise en charge latérale de l'extension SSL/TLS Server Name Indication (SNI)

  • Prise en charge de l'algorithme AEAD : le fournisseur SunJCE a été amélioré pour prendre en charge l'implémentation du chiffrement AES/GCM/NoPadding ainsi que l'algorithme GCM. paramètres. Le fournisseur SunJSSE a également été amélioré pour prendre en charge les suites de chiffrement basées sur le mode AEAD. Voir la documentation du fournisseur Oracle, JEP 115.

  • Améliorations du keystore, notamment le nouveau type de keystore de domaine java.security.DomainLoadStoreParameter et la nouvelle option de commande -importpassword

  • Résumé du message SHA-224

  • Prise en charge améliorée du cryptage NSA Suite B

  • Meilleure prise en charge de la génération de nombres aléatoires à haute entropie

  • Ajout de la classe java.security.cert.PKIXRevocationChecker, utilisée pour configurer le contrôle de révocation des certificats X.509

  • Applicable à Windows 64 bits PKCS11

  • Nouveau type de cache ajouté au cache de relecture Kerberos 5

  • Prise en charge de la traduction du protocole Kerberos 5 et de la délégation restreinte

  • Kerberos 5 faible types de cryptage désactivés par défaut

  • SASL non lié pour le mécanisme GSS-API/Kerberos 5

  • Service SASL pour plusieurs noms d'hôtes

  • Pont JNI vers JGSS natif sur Mac OS X

  • Fournisseur SunJSSE Prise en charge de clés DH temporaires plus fortes dans

  • Prise en charge de Personnalisation des préférences de suite de chiffrement côté serveur dans JSSE

JavaFX

  • Le nouveau thème Modena a été implémenté dans cette version .

  • La nouvelle classe SwingNode permet aux développeurs d'intégrer du contenu Swing dans les applications JavaFX. Consultez le javadoc SwingNode et l'intégration du contenu Swing dans les applications JavaFX.

  • Les nouveaux contrôles d'interface utilisateur incluent les contrôles DatePicker et TreeTableView.

  • Le package javafx.print fournit des classes publiques pour l'API d'impression JavaFX. Voir la javadoc pour plus d'informations.

  • Les fonctionnalités graphiques 3D incluent désormais des formes 3D, des caméras, des lumières, des sous-scènes, des matériaux, la sélection et l'anticrénelage. De nouvelles classes Shape3D (sous-classes Box, Cylindre, MeshView et Sphere), SubScene, Material, PickResult, LightBase (sous-classes AmbientLight et PointLight) et SceneAntialiasing ont été ajoutées à la bibliothèque graphique 3D JavaFX. La classe API Camera a également été mise à jour dans cette version. Consultez le javadoc associé pour les classes javafx.scene.shape.Shape3D, javafx.scene.SubScene, javafx.scene.paint.Material, javafx.scene.input.PickResult et javafx.scene.SceneAntialiasing ainsi que les graphiques 3D JavaFX. Documentation de démarrage.

  • La classe WebView contient de nouvelles fonctionnalités et améliorations. Pour plus d'informations sur d'autres fonctionnalités HTML5, notamment les sockets Web, les travailleurs Web et les polices Web, consultez Fonctionnalités HTML5 prises en charge.

  • Prise en charge améliorée du texte, notamment le texte bidirectionnel, les scripts de texte complexes (tels que les contrôles thaïlandais et hindi) et le texte multiligne et multistyle dans les nœuds de texte.

  • Cette version ajoute la prise en charge des écrans Hi-DPI.

  • Les classes CSS Styleable* sont devenues une API publique. Pour plus d'informations, consultez la javadoc Javafx.css.

  • La nouvelle classe ScheduledService permet le redémarrage automatique des services.

  • JavaFX est désormais disponible pour les plateformes ARM. JDK pour ARM comprend les composants de base, graphiques et de contrôle de JavaFX.

Outils

  • Le moteur Nashorn peut être appelé via la commande jjs. La commande

  • java est utilisée pour démarrer les applications JavaFX.

  • Réécriture de la page de manuel Java.

  • Les fichiers de classe peuvent être analysés via l'outil de ligne de commande jdeps.

  • Java Management Extensions (JMX) prend en charge l'accès à distance aux commandes de diagnostic.

  • L'outil jarsigner offre une option permettant de demander un horodatage signé à une autorité d'horodatage (TSA).

Outil Javac

  • L'option -parameters de la commande javac peut être utilisée pour stocker les noms de paramètres formels et activer l'API de réflexion pour récupérer les noms de paramètres formels.

  • La commande javac implémente désormais correctement les règles de type pour les opérateurs d'égalité dans la section 15.21 de Java Language Spécification (JLS).

  • L'outil javac prend désormais en charge la vérification du contenu des commentaires javadoc, évitant ainsi divers problèmes dans les fichiers générés lors de l'exécution de javadoc, tels qu'un code HTML invalide ou des problèmes d'accessibilité. Cette fonctionnalité peut être activée via une nouvelle option Xdoclint. Voir le résultat lors de l'exécution de "javac -X" pour plus de détails. Cette fonctionnalité est également disponible dans l'outil javadoc et est activée par défaut.

  • L'outil javac prend désormais en charge la génération d'en-têtes natifs à la demande. Cela élimine le besoin d'exécuter l'outil Javah séparément dans le pipeline de construction. Cette fonctionnalité peut être activée dans javac à l'aide de la nouvelle option -h, qui spécifie le répertoire dans lequel les fichiers d'en-tête sont écrits. Un fichier d'en-tête sera généré pour les champs constants annotés pour toute classe possédant une méthode native ou utilisant une nouvelle annotation de type java.lang.annotation.Native .

Outil Javadoc

  • L'outil Javadoc prend en charge la nouvelle API DocTree, vous permettant d'utiliser les commentaires Javadoc comme arbres de syntaxe abstraits traverser.

  • L'outil javadoc prend en charge la nouvelle API Javadoc Access, vous permettant d'appeler l'outil Javadoc directement depuis votre application Java sans exécuter de nouveau processus. Pour plus d'informations, consultez la page des nouvelles fonctionnalités de javadoc.

  • L'outil javadoc prend désormais en charge la vérification du contenu des commentaires javadoc, évitant ainsi divers problèmes dans les fichiers générés lors de l'exécution de javadoc, tels qu'un code HTML invalide ou des problèmes d'accessibilité. Cette fonctionnalité est activée par défaut et peut être contrôlée via la nouvelle option -Xdoclint. Voir le résultat lors de l'exécution de "javadoc -X" pour plus de détails. L'outil javac prend également en charge cette fonctionnalité, mais elle n'est pas activée par défaut.

Internationalisation

  • Améliorations d'Unicode, notamment la prise en charge d'Unicode 6.2.0

  • Utilisation des données Unicode CLDR et des propriétés système java.locale.providers

  • Nouvelle API de calendrier et de paramètres régionaux

  • Prise en charge des packs de ressources personnalisés installés en tant que extensions

Déploiement

  • désormais disponibles à l'aide d'URLPermission pour permettre aux applets sandbox et aux applications Java Web Start de se reconnecter au serveur cela les a lancés. SocketPermission n’est plus accordée.

  • L'attribut Permissions est requis dans le manifeste du fichier JAR du fichier JAR principal à tous les niveaux de sécurité.

Forfaits date-heure

Un nouvel ensemble de packages qui fournissent un modèle date-heure complet.

Scripting

Le moteur Javascript Rhino a été remplacé par le moteur JavaScript Nashorn

Pack200

  • Pack200 prend en charge les entrées de pool constantes et le nouveau bytecode introduit par JSR 292

  • JDK8 prend en charge les modifications de fichiers de classe spécifiées par JSR-292, JSR-308 et JSR-335

IO et NIO

  • Une nouvelle implémentation de SelectorProvider orientée Solaris basée sur le mécanisme de port d'événement Solaris. Pour l'utiliser, définissez la valeur de la propriété système java.nio.channels.spi.Selector sur sun.nio.ch.EventPortSelectorProvider.

  • Réduire la taille du fichier /jre/lib/charsets.jar

  • Amélioration des performances du constructeur java.lang.String(byte[], *) et de la méthode java.lang.String.getBytes().

Paquets java.lang et java.util

  • Tri de tableaux parallèles

  • Encodage et décodage standard Base64

  • Support arithmétique non signé

JDBC

  • Suppression du pont JDBC-ODBC.

  • JDBC 4.2 introduit de nouvelles fonctionnalités.

Java DB

JDK 8 inclut Java DB 10.10.

Réseau

  • La classe java.net.URLPermission a été ajoutée.

  • Dans la classe java.net.HttpURLConnection, si un gestionnaire de sécurité est installé, l'appel demandant l'ouverture de la connexion nécessite des autorisations.

Concurrency

  • Certaines nouvelles classes et interfaces ont été ajoutées au package java.util.concurrent.

  • Certaines nouvelles méthodes ont été ajoutées à la classe java.util.concurrent.ConcurrentHashMap pour prendre en charge les opérations d'agrégation basées sur de nouveaux outils de flux et expressions lambda.

  • De nouvelles classes ont été ajoutées au package java.util.concurrent.atomic pour prendre en charge les variables extensibles et pouvant être mises à jour.

  • Certaines nouvelles méthodes ont été ajoutées à la classe java.util.concurrent.ForkJoinPool pour prendre en charge le pooling universel.

  • La nouvelle classe java.util.concurrent.locks.StampedLock fournit un verrou basé sur les capacités qui peut contrôler l'accès en lecture/écriture via trois modes.

Java XML - JAXP

HotSpot

  • Nouveaux éléments intrinsèques du matériel pour utiliser Advanced Encryption Standard (AES). Les indicateurs UseAES et UseAESIntrinsics activent les intrinsèques AES basés sur le matériel pour le matériel Intel. Le matériel doit être du matériel Westmere 2010 ou plus récent. Par exemple, pour activer l'AES matériel, utilisez les indicateurs suivants :

  • -XX:+UseAES -XX:+UseAESIntrinsics

  • Pour désactiver l'AES matériel, utilisez les indicateurs suivants :

  • -XX:-UseAES -XX:-UseAESIntrinsics

  • PermGen supprimé . Les instructions de bytecode appelées par la méthode

  • prennent en charge les méthodes par défaut du langage de programmation Java.

Notes de version de Java Mission Control 5.3

JDK 8 inclut Java Mission Control 5.3.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn