Maison >Périphériques technologiques >Industrie informatique >JVMLS 2016: un récapitulatif de Java Virtual Machine Language Summit
2016 Java Virtual Machine Language Summit: Regarder l'avenir de JVM
Le Java Virtual Machine Language Summit 2016 (JVMLS) rassemble des concepteurs de langues et des ingénieurs JVM pour discuter du développement futur de JVM et de son impact sur la langue Java. Le sommet s'est concentré sur des questions clés telles que Project Jigsaw, Project Valhalla et l'avenir des machines virtuelles.
modulaire: Project Jigsaw
Projet Jigsaw est une caractéristique centrale de Java 9, qui introduit un mécanisme modulaire pour la langue Java. Les développeurs peuvent créer des modules qui permettent une configuration fiable, un emballage puissant et une évolutivité, une sécurité et des performances améliorées. Java 9 permettra la création de modules (essentiellement un package JAR contenant la nouvelle structure - descripteur de module). Le descripteur du module décrit un module en spécifiant le nom du module, en répertoriant les modules requis et en exportant des packages. Au moment de l'exécution, un module ne voit principalement que le module dont il dépend (lisibilité) et ne peut accéder qu'aux types (accessibilité) dans d'autres modules lorsque le module est lu et le module exporte un package contenant ce type. Cela signifie que le compilateur et JVM ont finalement abandonné le modèle de boule de boue qui a incorporé tous les code et dépendances ensemble, et l'a remplacé par une vraie carte plus proche de notre compréhension de la structure du logiciel. Le compilateur et le JVM comprennent ce graphique, de sorte que les modules manquants, plusieurs versions du même module ou plusieurs modules exportent les mêmes packages pendant la compilation ou le démarrage, en évitant les erreurs d'exécution ou des erreurs subtiles qui sont difficiles à détecter.
Type de valeur: Project Valhalla
Projet Valhalla est conçu pour introduire des types de valeur qui peuvent être résumés en tant que types primitifs définis par l'utilisateur. Les types de valeur sont les mêmes que les types primitifs et n'entraînent pas les frais généraux de mémoire ou l'adresse indirecte. Un point personnalisé contenant deux champs int x et y sera incliné à son emplacement d'utilisation, ne nécessitant que la mémoire requise pour deux INT, et le tableau de points est essentiellement un tableau de paires x / y. Comme le type d'origine, ces points ne sont pas identifiés - bien qu'il puisse y avoir deux objets entiers différents avec une valeur de 5, il ne peut pas y avoir deux valeurs INT différentes de 5. Comme une classe, un type de valeur peut avoir des méthodes et des champs et implémenter une interface. Par conséquent, son slogan est: "coder comme une classe, fonctionnant comme un int". Cela nous empêchera de devoir échanger entre l'abstraction préférée et les performances requises.
Cependant, le projet s'est rapidement écarté de la piste. Comme nous le savons tous, les génériques ne fonctionnent pas avec les types primitifs - ArrayList
Par conséquent, nous devons être capables d'utiliser des génériques avec des types de valeur - les types primitifs peuvent également être utilisés ensemble. En fin de compte, nous voulons non seulement instancier ArrayList
Si vous avez de la chance, certains ou même tous seront inclus dans Java 10.
Virtual Machine Future
John Rose a parlé de plusieurs directions qui attirent les machines virtuelles vers le futur:
Beaucoup de contenu dépasse ma compréhension, mais écouter ses discours en bénéficiait encore beaucoup, même si c'était juste pour ressentir sa passion.
Conformément à l'esprit des perspectives de Rose est le projet Panama (discuté par Mikel Vidstedt et Tobi Ajila dans "Going Native"), qu'Ian tombe avec "Java Vector API". La démonstration de Christian Wimmer de "One Compiler" est également destinée à combler l'écart.
Résumé
JVM est un outil puissant que de nombreuses personnes intelligentes travaillent pour la rendre plus forte tout en contrôlant sa complexité.
FAQ sur le Sommet de langue JVM 2016 (Cette partie est la même que le texte d'origine, omis)
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!