Interview to kill | Veuillez parler des nouvelles fonctionnalités introduites par Java8-18 (5)

Prenez l'habitude d'écrire ensemble ! C'est le 10ème jour de ma participation au "Nuggets Daily New Plan · April Update Challenge", cliquez pour voir les détails de l'événement .

Java8 est sorti le 18 mars 2014 et depuis le 6 avril 2022, la dernière version est Java18. Les versions 17, 11 et 8 sont les versions de support à long terme (LTS) actuellement prises en charge. Cet article vous amène à passer en revue les fonctionnalités de chaque version à partir de Java 8. Asseyez-vous sur le banc et c'est parti ! Si vous voulez lire l'article précédent, cliquez ici pour une interview et un anti-kill | Veuillez parler des nouvelles fonctionnalités introduites par Java8-18 (4)

Quoi de neuf dans Java 14

Dossiers

Les enregistrements sont une forme de classe restreinte idéale pour les pojos. Une classe de support de données standard aura des champs privés ainsi que des constructeurs et des getters/setters.

Créons un exemple de classe de support de données simple avec deux membres utilisant la syntaxe Java 8 :

public class Location {
    double x;
    double y;
    public Location(double x, double y) {
    this.x = x;
    this.y = y;
    }
    public double getX() {
     return x;
    }
    public double getY() {
     return y;
    }
}
复制代码

Nous pouvons réécrire la classe ci-dessus en utilisant Record en utilisant le code ci-dessous :

record NewLocation(double x, double y) {}
复制代码

Record obtiendra les getters et les constructeurs au moment de l'exécution, et obtiendra également les méthodes equals(), hashcode() et toString().

Exception Nullpointer utile

Jusque-là, la trace de la pile pour NullPointerException n'a pas grand-chose à dire, sauf qu'une certaine valeur sur une ligne dans un fichier donné est nulle.

Bien que ces informations soient utiles, elles ne sont que des suggestions pour déboguer une ligne de code, et pas seulement en regardant les journaux pour que le développeur les comprenne.

Désormais, Java a simplifié ce processus en ajoutant la possibilité d'indiquer exactement ce qui est nul dans une ligne de code donnée.

Voici un exemple de pointeur nul :

int[] arr = null;
arr[0] = 1;
复制代码

Dans les versions précédentes, lors de l'exécution de ce code, le journal affichait :

Exception in thread "main" java.lang.NullPointerException
at com.baeldung.MyClass.main(MyClass.java:27)
复制代码

Mais pour Java 14, le journal imprime :

java.lang.NullPointerException: Cannot store to int array because "a" is null
复制代码

Comme nous pouvons le voir, nous savons maintenant exactement quelle variable a provoqué l'exception.

Blocs de texte

Les blocs de texte ont reçu une autre mise à jour de Java 13 et ont maintenant deux nouvelles séquences d'échappement, mais sont toujours une fonctionnalité d'aperçu.

  • : indique la fin de ligne, afin de ne pas introduire de caractères de nouvelle ligne
  • \s : représente un seul espace

par exemple:

String multiline = "A quick brown fox jumps over a lazy dog; the lazy dog howls loudly.";
复制代码

Il peut désormais s'écrire :

String multiline = """
    A quick brown fox jumps over a lazy dog; \
    the lazy dog howls loudly.""";
复制代码

Cela améliore la lisibilité des chaînes.

Bien sûr, il existe d'autres nouvelles fonctionnalités, y compris, mais sans s'y limiter :

  • Outil d'emballage
  • API d'accès à la mémoire étrangère
  • ZGC sous Windows
  • Allocation de mémoire compatible NUMA pour G1
  • Diffusion d'événements JFR

A suivre, continuons à parler des nouveautés de chaque version, alors restez connectés !

Je suppose que tu aimes

Origine juejin.im/post/7084698526026432548
conseillé
Classement