Einführung in Java 8

Wie wir alle wissen, ist Java eine der mächtigsten Programmiersprachen. Java SE 8, eine neue Java-Version, wurde am 18. März 2014 von Oracle veröffentlicht. Diese innovative Java-Version wird hauptsächlich für Softwareentwicklungsplattformen verwendet. In Java8 gibt es verschiedene Funktionen, die Aktualisierungen der vorhandenen Version von Programmierbibliotheken, JVM und Tools darstellen. Das wichtigste Merkmal soll die Einführung von Lambda-Ausdrücken sein, auf die wir im folgenden Abschnitt zusammen mit anderen Merkmalen eingehen werden.

Neue Funktionen von Java 8

Für die Java-Programmierung bietet Java SE 8 eine Vielzahl von Funktionen. Einige von ihnen sind

  • Lambda-Ausdrücke
  • Stream-API
  • ForEach () Methode
  • Standardmethode
  • Datum Zeit API
  • Nashorn JavaScript Engine
  • Methodenreferenzen
  • StringJoiner

Lassen Sie uns nun jeden von ihnen im Detail betrachten.

1. Lambda-Ausdruck

Lambda-Ausdruck ist eine anonyme Funktion (eine Funktion ohne Namen), die beim Schreiben von Code in einem bestimmten Funktionsstil hilft. Single Abstract Method (SAM) kann mithilfe eines Ausdrucks klar und präzise implementiert werden. Da Daten iteriert, gefiltert und extrahiert werden können, ist dies insbesondere in der Auflistungsbibliothek sehr hilfreich. Lambda-Ausdruck hilft auch bei der Reduzierung der Komplexität von Code. Nachfolgend finden Sie die Syntax eines Lambda-Ausdrucks:

Syntax:

(Parameters) -> Expression

Code:

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

2. Stream API

Die Stream-API bietet eine Technik für die Datenverarbeitung auf verschiedene Arten wie Filtern, Extrahieren, Transformieren usw. mit Hilfe des Pakets java.util.stream. Es ist nicht erforderlich, java.util.streams mit Java InputStreams oder OutputStreams zu verwechseln, da zwischen ihnen keine Beziehung besteht. Einer der Hauptvorteile der Stream-API besteht darin, dass die Quelle nicht geändert wird. Das heißt, wenn ein Datensatz gefiltert wird, wird ein neuer Datensatz mit gefilterten Daten erstellt, anstatt die ursprüngliche Quelle zu ändern. Die Stream-API wertet den Code nur dann aus, wenn er benötigt wird, und wiederholt den Code nur einmal. Wenn eine Wiederholung durchgeführt werden muss, muss ein neuer Stream generiert werden. Hierzu stehen verschiedene vordefinierte Methoden zur Verfügung. Um den Stream zu iterieren, kann der folgende Code verwendet werden.

Code:

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

3. ForEach () Methode

Um das Collection Framework durchlaufen zu können, bietet Java SE8 eine neue Methode namens forEach an, die in der Iterable-Schnittstelle definiert ist. Die ForEach () - Schleife kann in einer Auflistungsklasse verwendet werden, die die Schnittstelle Iterable erweitert. Da diese Methode einen einzelnen Parameter eingibt, kann auch ein Lambda-Ausdruck als Parameter übergeben werden.

Code:

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

4. Standardmethode

Normalerweise können nicht abstrakte Methoden nicht zu Interfaces hinzugefügt werden. Im Fall von Java 8 ist es jedoch möglich, diese Methoden in Schnittstellen hinzuzufügen. Diese Methoden werden mit einem Schlüsselwort default geschrieben und als Standardmethoden bezeichnet. Da es sich um nicht abstrakte Methoden handelt, kann auch der Methodenkörper einbezogen werden. Interessanterweise stellt diese Funktion auch die Binärkompatibilität mit älteren Codeversionen sicher.

Code:

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

5. Date Time API

In Java 8 wurden eine neue Zeit-API und eine neue Datums-API eingeführt, bei denen die Behandlung von Datumsangaben anders erfolgt als bei anderen Java-Versionen. Diese Klassen werden auch als JSR-310, ThreeTen bezeichnet.

Die folgenden Zeit- und Datumsklassen sind in Java verfügbar. Zeitpaket:

  • Jtime.LocalDate-Klasse
  • LocalTime-Klasse
  • LocalDateTime-Klasse
  • MonthDay-Klasse
  • OffsetTime-Klasse
  • OffsetDateTime-Klasse
  • Uhrenklasse
  • ZonedDateTime-Klasse
  • ZoneId-Klasse
  • ZoneOffset-Klasse
  • Jahresklasse
  • YearMonth-Klasse
  • Periodenklasse
  • Durationsklasse
  • Sofortunterricht
  • DayOfWeek-Aufzählung
  • Monatszählung

Code:

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

6. Nashorn Javascript Engine

Nashorn ist eine JavaScript-Engine, die bei der dynamischen Ausführung von JavaScript-Code in Java Virtual Machine (JVM) hilft.

Dies kann mit zwei unten genannten Methoden erfolgen.

  1. Mit Hilfe des Kommandozeilen-Tools jjs.
  2. Indem Sie es in Java-Quellcode setzen.

Zur Ausführung mit dem Befehlszeilentool jjs können die folgenden Schritte ausgeführt werden.

  • Erstellen Sie eine .js-Datei js.
  • Schreiben Sie den folgenden Code und speichern Sie ihn in der Datei.

Code:

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

  • Das offene Befehlszeilenterminal
  • Schreiben Sie den Befehl jjs welcome.js und klicken Sie auf Enter.
  • Sobald der Befehl ausgeführt wurde, wird die folgende Ausgabe angezeigt.

Ausgabe :

7. Methodenreferenzen

Methodenreferenzen sind eine weitere in Java 8 eingeführte Funktion, die in Methoden der funktionalen Schnittstelle verwendet werden kann. Auf eine andere Weise kann gesagt werden, dass sie eine Teilmenge eines anderen Java-Merkmals sind, Lambda-Ausdrücke. Dies liegt daran, dass eine Methodenreferenz auch verwendet werden kann, wenn ein Lambda-Ausdruck verwendet werden kann.

Methoden können sein:

  • Referenz zum Konstruktor
  • Verweis auf statische Methode
  • Referenz auf eine Instanzmethode

Der Verweis auf die statische Methode kann wie folgt lauten

Code:

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

8. StringJoiner

In Java 8 wurde eine neue finale Klasse StringJoiner hinzugefügt. util-Paket. Eine Folge von Zeichen kann durch Trennzeichen wie Komma (, ), Bindestrich (-) usw. getrennt erstellt werden.

Code:

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

Ausgabe:

Sicherheitsverbesserungen

Zusätzlich zu diesen Funktionen wurden verschiedene andere Sicherheitsverbesserungen an Java SE8 vorgenommen. Sie sind:

  • Der Public Key Cryptography Standard 11 (PKCS) wurde um 64-Bit-Unterstützung für das Betriebssystem Windows erweitert.
  • Für UNIX-Plattformen wurden zwei neue Implementierungen vorgestellt. Es bietet blockierendes und nicht blockierendes Verhalten.
  • Im SunJCE-Anbieter werden auch AES- und PBE-Algorithmen wie PBEWithSHA256AndAES_128 und PBEWithSHA512AndAES_256 hinzugefügt.
  • Java SE 8 unterstützt die Server Name Indication (SNI) -Erweiterung, die die TLS / SSL-Protokolle erweitert, um während des Handshakes eine Verbindung zur Unterstützung von Serveranwendungen herzustellen.

Fazit

Java SE8 ist die neue Version von Java, die von Oracle entwickelt wurde und mehrere Funktionen bietet. Der Lambda-Ausdruck wird als das bedeutendste Merkmal unter ihnen angesehen. In diesem Dokument werden Funktionen von Java SE 8 und Sicherheitsverbesserungen ausführlich erläutert.

Empfohlene Artikel

Dies ist eine Anleitung zu den Neuerungen in Java 8. Hier besprechen wir die verschiedenen acht Funktionen von new java 8. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.

  1. CardLayout in Java
  2. Reverse Number in Java
  3. JComboBox in Java
  4. StringBuffer in Java
  5. Arrays in der Java-Programmierung
  6. Statische JavaScript-Methode | Beispiele