Inleiding tot Java 8

Zoals we allemaal weten, is Java een van de krachtigste programmeertalen. Een nieuwe versie van Java, Java SE 8, is uitgebracht door Oracle op 18 maart 2014. Deze innovatieve versie van Java wordt voornamelijk gebruikt voor softwareontwikkelingsplatforms. Er zijn verschillende functies in Java8: updates voor de bestaande versie van programmeerbibliotheken, JVM en Tools. Het belangrijkste kenmerk is de introductie van lambda-uitdrukkingen die we in het volgende gedeelte samen met andere functies zullen bespreken.

Nieuwe functies van Java 8

Voor Java-programmering biedt Java SE 8 een overvloed aan functies. Sommige ervan zijn

  • Lambda-uitdrukkingen
  • Stream API
  • ForEach () -methode
  • Standaard methode
  • Datum Tijd API
  • Nashorn JavaScript Engine
  • Methode Referenties
  • StringJoiner

Laten we nu elk van hen in detail bekijken.

1. Lambda-expressie

Lambda-expressie is een anonieme functie (een functie zonder naam) die helpt bij het schrijven van code in een bepaalde functionele stijl. Single Abstract Method (SAM) kan op een duidelijke en beknopte manier worden geïmplementeerd door een expressie te gebruiken. Omdat gegevens kunnen worden herhaald, gefilterd en geëxtraheerd, is het zeer nuttig, vooral in de collectiebibliotheek. Lambda-expressie helpt ook bij het verminderen van de complexiteit van code. Hieronder is de syntaxis van een lambda-expressie:

Syntaxis:

(Parameters) -> Expression

Code:

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

2. Stream API

Stream API biedt een techniek voor gegevensverwerking op verschillende manieren, zoals filteren, extraheren, transformatie, enz. Met behulp van pakket java.util.stream. Het is niet nodig om java.util.streams te verwarren met Java InputStreams of OutputStreams omdat er geen relatie tussen is. Een van de belangrijkste voordelen van Stream API is dat het de bron niet wijzigt. dat wil zeggen als een set gegevens wordt gefilterd, wordt een nieuwe set gegevens gemaakt met gefilterde gegevens in plaats van de oorspronkelijke bron te wijzigen. Stream API evalueert de code alleen wanneer deze nodig is en itereert de code niet meer dan één keer. Als herhaling moet worden gedaan, moet een nieuwe stream worden gegenereerd. Er zijn verschillende vooraf gedefinieerde methoden aanwezig om dit te ondersteunen. Om de stream te herhalen, kan de volgende code worden gebruikt.

Code:

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

3. ForEach () -methode

Om het Collection Framework te herhalen, biedt Java SE8 een nieuwe methode genaamd forEach die is gedefinieerd in de Iterable-interface. ForEach () -lus kan worden gebruikt in een collectieklasse die de interface Iterable uitbreidt. Omdat deze methode een enkele parameter invoert, kan een lambda-expressie ook worden doorgegeven als parameter.

Code:

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

4. Standaardmethode

Normaal gesproken kunnen niet-abstracte methoden niet aan interfaces worden toegevoegd. Maar in het geval van Java 8 is het mogelijk om die methoden in interfaces toe te voegen. Deze methoden zijn geschreven met een standaard zoekwoord en staan ​​bekend als standaardmethoden. Omdat het niet-abstracte methoden zijn, kan de methode ook worden opgenomen. Interessant is dat deze functie ook zorgt voor de binaire compatibiliteit met oudere codeversies.

Code:

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

5. Datum Tijd API

In Java 8 is een nieuwe Time API en Date API geïntroduceerd waarbij de verwerking van datums op een andere manier verloopt dan in andere versies van Java. Deze klassen worden ook wel JSR-310, ThreeTen genoemd.

Hier volgen de klassen Tijd en Datum die beschikbaar zijn in Java. tijdspakket:

  • Jtime.LocalDate-klasse
  • LocalTime-klasse
  • LocalDateTime-klasse
  • Maanddag les
  • OffsetTime-klasse
  • Klasse OffsetDateTime
  • Klok klasse
  • Klasse ZonedDateTime
  • ZoneId-klasse
  • ZoneOffset-klasse
  • Jaar klas
  • JaarMaand klas
  • Periodeklasse
  • Duur klasse
  • Directe les
  • DayOfWeek enum
  • Maand enum

Code:

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

6. Nashorn Javascript-motor

Nashorn is een JavaScript-engine die helpt bij het dynamisch uitvoeren van JavaScript-code in Java Virtual Machine (JVM).

Dit kan met behulp van twee hieronder genoemde methoden.

  1. Met behulp van het opdrachtregelprogramma jjs.
  2. Door het in te stellen in de Java-broncode.

Om uit te voeren met behulp van het opdrachtregelprogramma jjs, kunnen de volgende stappen worden uitgevoerd.

  • Maak een .js-bestand js.
  • Schrijf en bewaar de volgende code in het bestand.

Code:

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

  • De open opdrachtregelterminal
  • Schrijf opdracht jjs welcome.js en klik op enter.
  • Nadat de opdracht is uitgevoerd, wordt de onderstaande uitvoer weergegeven.

Uitgang :

7. Referentiemethoden

Methodreferenties is een andere functie die wordt geïntroduceerd in Java 8 en die kan worden gebruikt in functionele interfacemethoden. Op een andere manier kan worden gezegd dat ze een subset zijn van een ander Java-kenmerk, lambda-uitdrukkingen. Dit komt omdat een methode-referentie ook kan worden gebruikt als een lambda-expressie kan worden gebruikt.

Methoden kunnen zijn:

  • Verwijzing naar Constructor
  • Verwijzing naar statische methode
  • Verwijzing naar een instantiemethode

De verwijzing naar de statische methode kan zijn zoals hieronder weergegeven

Code:

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

8. StringJoiner

Een nieuwe laatste klasse StringJoiner is toegevoegd aan Java 8 in de Java. gebruik pakket. Een reeks tekens kan worden opgebouwd gescheiden door scheidingstekens zoals komma (, ), koppelteken (-), enz.

Code:

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

Output:

Verbeterde beveiliging

Naast deze functies worden er ook verschillende andere beveiligingsverbeteringen aangebracht in Java SE8. Zij zijn:

  • De Public Key Cryptography Standards 11 (PKCS) is uitgebreid met 64-bits ondersteuning voor het besturingssysteem Windows.
  • Voor UNIX-platforms zijn twee nieuwe implementaties gepresenteerd. Het biedt blokkeer- en niet-blokkeergedrag.
  • In SunJCE provider zijn AES- en PBE-algoritmen zoals PBEWithSHA256AndAES_128 en PBEWithSHA512AndAES_256 ook toegevoegd.
  • Java SE 8 ondersteunt de extensie Server Name Indication (SNI) die de TLS / SSL-protocollen uitbreidt om tijdens handshaking verbinding te maken voor ondersteuning van servertoepassingen.

Conclusie

Java SE8 is de nieuwe versie van Java ontwikkeld door Oracle die verschillende functies biedt. Lambda-expressie wordt als het belangrijkste kenmerk beschouwd. In dit document worden functies van Java SE 8 en beveiligingsverbeteringen in detail uitgelegd.

Aanbevolen artikelen

Dit is een gids voor Wat is er nieuw in Java 8 ?. Hier bespreken we de verschillende acht functies van de nieuwe Java 8. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. CardLayout in Java
  2. Omgekeerd nummer in Java
  3. JComboBox in Java
  4. StringBuffer in Java
  5. Arrays in Java Programming
  6. JavaScript statische methode | Voorbeelden