Java9
Sortie le 21 septembre 2017 (* heure des États-Unis).
Vous ne vous souvenez pas de "* US time" dans US-US CLUB?
Maintenant, "US-US CLUB" a été converti en un seul coup.
Liste des changements
JDK9 Features
Beaucoup
Points de vue
- Impact
- Un gars qui peut affecter les trucs publiés sans jouer avec la source
――Un gars qui affectera la conception et le codage futurs
- Loisirs
――Le gars qui affecte le voisinage de VM
Extraction
Je n'ai rien à dire en détail car j'ai plus d'informations, mais quand je regarde ce graphique lié au paquet, il ressemble à "Euh".
jshell
Une autre tasse (ry
Le gars autour de la chaîne
Compact Strings
--Réduire la mémoire en spécialisant le Latin-1 (alphabet et chiffres arabes, autour des symboles demi-largeur)!
«J'ai dit, mais c'est contre-productif dans la zone de caractères multi-octets, n'est-ce pas?
--Détails ici → La classe String a été refactorisée même en Java9 (JEP 254: édition Compact Strings)
- La chaîne est immuable afin qu'un nouvel espace mémoire soit préparé lorsque des caractères multi-octets sont saisis, alors est-ce que ça va ...?
- EA, mais il semble y avoir un tel résultat → Vérifiez la vitesse de combinaison de chaînes avec Java 9
- 2017/10/03 ajouté Nous avons reçu le résultat de confirmation de la version officielle de la personne elle-même → [Vérifier la vitesse de combinaison des chaînes de caractères avec la version officielle Java 9](http://tadashi.hatenablog.com/entry/ 2017/09/23/200356)
- ~~ C'est un peu suspect, alors vérifions-le ~~
+ 2017/10/03 modified
- D'une certaine manière, "ma perception" est suspecte, alors vérifions-la un jour
- Corrigé car le résultat de la vérification de deaf_tadashi était considéré comme suspect.
Indify String Concatenation
--Amélioration de la méthode de " str "+" ing "
en utilisant l'instruction dynamique Invoke.
- Pour que vous n'ayez pas à vous soucier de l'histoire de StringBuffer → StringBuilder, qui a existé dans le passé.
――Dans l'ère à venir, "Use StringBuilder!" Est clairement dépassé.
――Mais pour le moment, utilisons Builder pour la concaténation de chaînes qui est in for ou while ou contient des variables.
―― ~~ indy se retourne au moment de l'exécution, vous pouvez donc bénéficier des bibliothèques compilées ~~
- Une bibliothèque compilée par Java 9 pour être combinée indy utilisera l'orientation actuelle même si elle est utilisée dans les versions ultérieures.
--Mr. Tsuyoshi_cho a fait remarquer qu'il est "limité aux bibliothèques compilées pour utiliser indy" et corrigé.
Store Interned Strings in CDS Archives
―― Tout d'abord, il existe une méthode appelée java.lang.String # intern ()
, qui "regroupe les chaînes utilisées jusqu'à présent et les extrait de là".
- En améliorant cet emplacement de regroupement, "Préparez un pool qui peut être partagé par un autre processus pour réduire la mémoire"
--Cependant, il n'est applicable que lors de l'utilisation de la version 64 bits et du G1GC.
―― Puisque le but est de réduire la mémoire, il semble qu'elle ne sera pas accélérée, ou il semble que ce sera un peu plus lent, car elle est "<2-3%", "elle ne se détériorera que dans 2-3%".
- En premier lieu,
java.lang.String # intern ()
est un processus lourd, donc je ne pense pas que ce soit quelque chose à craindre.
Deprecate the Applet API
Applet? Il est mort.
Unicode 8.0
Une représentation interne qui a été mise à niveau avec désinvolture.
Il existe également Unicode7.0.
Make G1 the Default Garbage Collector
--Une tasse de plus (ry
- Le ramasse-miettes par défaut sera G1
- Étant donné que le tas est divisé et régi, le temps requis pour la collecte des ordures dans le cas d'un gros tas est prévisible et réduit.
- La taille de tas valide semble être d'environ 6 Go
- Une personne spécialisée dans le réglage GC a dit: "Déterminez la taille de la région en calculant à partir du temps GC par temps."
UTF-8 Property Files
--UTF-8 peut être utilisé pour les ensembles de ressources
- Peut être utilisé correctement avec ISO-8859-1 et UTF-8
Plus de traitement pour java.util.stream.Stream
«Je suis satisfait du Stream infini qui reçoit« Predicate »et continue jusqu'à ce que les conditions soient remplies.
--Parallel Files.lines ()
est sympa
――Mais il semble que vous ayez fait le mappage de la mémoire, donc après tout, il semble que vous faites souvent Stream # read ()
séquentiellement.
――En premier lieu, il ne semble y avoir presque aucune situation où vous serez heureux d'utiliser Stream de java.io en parallèle, système de fichiers distribué, diffusion?
Convenience Factory Methods for Collections
Set<String> s = Set.of("a", "b", "c");
Vous n'êtes pas obligé de le faire.
Java-Level JVM Compiler Interface
- Questions à ne pas toucher, telles que le lancement de code machine dans la JVM
--Il semble être utilisé lors de la création d'un compilateur dynamique, comme son utilisation dans Graal
--Il existe une API pour obtenir la progression de JIT et la façon dont le code est actuellement déployé.
- Comme prévu, il n'est appliqué que si l'option de démarrage est spécifiée.
autre