Introduction à Java 8

Comme nous le savons tous, Java est l'un des langages de programmation les plus puissants. Une nouvelle version de Java, Java SE 8, a été lancée par Oracle le 18 mars 2014. Cette version innovante de Java est principalement utilisée pour les plates-formes de développement logiciel. Il y a plusieurs fonctionnalités dans Java8 qui sont les mises à jour de la version existante des bibliothèques de programmation, JVM et Tools. On dit que la caractéristique la plus importante est l'introduction d'expressions lambda dont nous discuterons dans la section suivante avec d'autres fonctionnalités.

Nouvelles fonctionnalités de Java 8

Pour la programmation Java, Java SE 8 offre une pléthore de fonctionnalités. Certains d'entre eux sont

  • Expressions lambda
  • API Stream
  • Méthode ForEach ()
  • Méthode par défaut
  • API Date Heure
  • Moteur JavaScript Nashorn
  • Références de méthode
  • StringJoiner

Examinons maintenant chacun d'eux en détail.

1. Expression lambda

L'expression lambda est une fonction anonyme (une fonction sans nom) qui aide à écrire du code dans un certain style fonctionnel. La méthode abstraite unique (SAM) peut être implémentée de manière claire et concise en utilisant une expression. Étant donné que les données peuvent être itérées, filtrées et extraites, elles sont très utiles, en particulier dans la bibliothèque de collecte. L'expression lambda aide également à réduire la complexité du code. Voici la syntaxe d'une expression lambda:

Syntaxe:

(Parameters) -> Expression

Code:

( a, b ) -> a + b // Expression takes 2 parameters and return the sum.

2. Stream API

Stream API propose une technique de traitement des données de différentes manières telles que le filtrage, l'extraction, la transformation, etc. à l'aide du package java.util.stream. Il n'est pas nécessaire de confondre java.util.streams avec Java InputStreams ou OutputStreams car il n'y a aucune relation entre eux. L'un des principaux avantages de Stream API est qu'elle ne modifie pas sa source. Par exemple, si un ensemble de données est filtré, un nouvel ensemble de données est créé avec des données filtrées plutôt que de modifier la source d'origine. L'API Stream évalue le code uniquement lorsque cela est nécessaire et n'itère pas le code plus d'une fois. Si la réitération doit être effectuée, un nouveau flux doit être généré. Plusieurs méthodes prédéfinies sont présentes pour supporter cela. Pour itérer le flux, le code suivant peut être utilisé.

Code:

Stream.iterate(1, elem->elem+1)

3. Méthode ForEach ()

Afin d'itérer sur le Framework de Collection, Java SE8 propose une nouvelle méthode appelée forEach qui est définie dans l'interface Iterable. La boucle ForEach () peut être utilisée dans une classe de collection qui étend l'interface Iterable. Étant donné que cette méthode entre un seul paramètre, une expression lambda peut également être passée en tant que paramètre.

Code:

age.forEach( age -> ( System.out.println(age); )); //each age is taken and printed

4. Méthode par défaut

Normalement, les méthodes non abstraites ne peuvent pas être ajoutées aux interfaces. Mais, dans le cas de Java 8, cela permet d'ajouter ces méthodes dans les interfaces. Ces méthodes sont écrites avec un mot-clé default et sont appelées méthodes par défaut. Puisqu'il s'agit de méthodes non abstraites, le corps de la méthode peut également être inclus. Fait intéressant, cette fonctionnalité garantit également la compatibilité binaire avec les anciennes versions de code.

Code:

public interface Moveable (
default void Sound()(
System.out.println("Hi Anna, How is my sound?");
))

5. API date-heure

Dans Java 8, une nouvelle API Time et Date API a été introduite où la gestion des dates se fait selon une méthode différente de celle des autres versions de Java. Ces classes sont également appelées JSR-310, ThreeTen.

Les classes d'heure et de date suivantes sont disponibles en Java. forfait horaire:

  • Classe Jtime.LocalDate
  • Classe LocalTime
  • Classe LocalDateTime
  • Classe MonthDay
  • Classe OffsetTime
  • Classe OffsetDateTime
  • Classe d'horloge
  • Classe ZonedDateTime
  • ZoneId, classe
  • Classe ZoneOffset
  • Classe d'âge
  • Classe de mois
  • Classe de période
  • Classe de durée
  • Classe instantanée
  • DayOfWeek enum
  • Énumération du mois

Code:

Clock cl = Clock.systemDefaultZone();
System.out.println(cl.getZone());

6. Moteur Javascript Nashorn

Nashorn est un moteur JavaScript qui aide à exécuter dynamiquement du code JavaScript dans Java Virtual Machine (JVM).

Cela peut être fait en utilisant deux méthodes mentionnées ci-dessous.

  1. Avec l'aide de l'outil de ligne de commande jjs.
  2. En le plaçant dans le code source Java.

Pour exécuter à l'aide de l'outil de ligne de commande jjs, les étapes suivantes peuvent être effectuées.

  • Créez un fichier .js js.
  • Écrivez et enregistrez le code suivant dans le fichier.

Code:

var welcome = function()(
print("welcome to Nashorn Javascript Engine");
);
welcome ();

  • Le terminal de ligne de commande ouvert
  • Écrivez la commande jjs welcome.js et cliquez sur Entrée.
  • Une fois la commande exécutée, la sortie ci-dessous sera affichée.

Sortie :

7. Références de méthode

Les références de méthode sont une autre fonctionnalité introduite dans Java 8 qui peut être utilisée dans les méthodes d'interface fonctionnelle. D'une autre manière, on peut dire qu'ils sont un sous-ensemble d'une autre fonctionnalité java, les expressions lambda. C'est parce qu'une référence de méthode peut également être utilisée si une expression lambda peut être utilisée.

Les méthodes peuvent être:

  • Référence au constructeur
  • Référence à la méthode statique
  • Référence à une méthode d'instance

La référence à la méthode statique peut être comme indiqué ci-dessous

Code:

Thread t=new Thread(ExampleClass::ThreadStatusMethod);
t.start();

8. StringJoiner

Une nouvelle classe finale StringJoiner a été ajoutée à Java 8 dans la java. paquet d'utilisation. Une séquence de caractères peut être construite séparée par des délimiteurs comme la virgule (, ), le tiret (-), etc.

Code:

StringJoiner Names = new StringJoiner("-"); // Here, delimiter is -
// Adding names to StringJoiner
joinNames.add("Anna");
joinNames.add("Adam");

Production:

Améliorations de la sécurité

En plus de ces fonctionnalités, plusieurs autres améliorations de sécurité sont également apportées à Java SE8. Elles sont:

  • Les normes de cryptographie à clé publique 11 (PKCS) ont été étendues pour inclure des supports 64 bits pour le système d'exploitation Windows.
  • Pour les plates-formes UNIX, deux nouvelles implémentations ont été présentées. Il offre un comportement bloquant et non bloquant.
  • Dans le fournisseur SunJCE, des algorithmes AES et PBE tels que PBEWithSHA256AndAES_128 et PBEWithSHA512AndAES_256 sont également ajoutés.
  • Java SE 8 prend en charge l'extension d'indication de nom de serveur (SNI) qui étend les protocoles TLS / SSL pour se connecter pendant l'établissement de liaison afin de prendre en charge les applications serveur.

Conclusion

Java SE8 est la nouvelle version de Java développée par Oracle qui offre plusieurs fonctionnalités. L'expression lambda est considérée comme la caractéristique la plus importante d'entre elles. Dans ce document, les fonctionnalités de Java SE 8 et les améliorations de sécurité sont expliquées en détail.

Articles recommandés

Ceci est un guide des nouveautés de java 8?. Ici, nous discutons des huit différentes fonctionnalités du nouveau java 8. Vous pouvez également consulter nos autres articles connexes pour en savoir plus-

  1. CardLayout en Java
  2. Numéro inversé en Java
  3. JComboBox en Java
  4. StringBuffer en Java
  5. Tableaux en programmation Java
  6. Méthode statique JavaScript | Exemples