Introduktion till Java 8

Som vi alla vet är Java ett av de kraftfullaste programmeringsspråken. En ny version av Java, Java SE 8 har släppts av Oracle den 18 mars 2014. Denna innovativa version av Java används främst för mjukvaruutvecklingsplattformar. Det finns flera funktioner i Java8 som är uppdateringarna till den befintliga versionen av programmeringsbibliotek, JVM och Tools. Den viktigaste funktionen sägs vara introduktionen av lambda-uttryck som vi kommer att diskutera i följande avsnitt tillsammans med andra funktioner.

Nya funktioner i Java 8

För Java-programmering erbjuder Java SE 8 en mängd funktioner. Några av dem är

  • Lambda-uttryck
  • Stream API
  • ForEach () -metod
  • Standardmetod
  • Date Time API
  • Nashorn JavaScript Engine
  • Metodreferenser
  • StringJoiner

Låt oss nu undersöka var och en av dem i detalj.

1. Lambda-uttryck

Lambda-uttryck är en anonym funktion (en funktion utan namn) som hjälper till att skriva kod i en viss funktionell stil. Single Abstract Method (SAM) kan implementeras på ett tydligt och kortfattat sätt genom att använda ett uttryck. Eftersom data kan itereras, filtreras och extraheras är det till stor hjälp, särskilt i samlingsbiblioteket. Lambda-uttryck hjälper också till att minska kodens komplexitet. Nedan är syntaxen för ett lambda-uttryck:

Syntax:

(Parameters) -> Expression

Koda:

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

2. Stream API

Stream API erbjuder en teknik för databehandling på olika sätt som filtrering, extrahering, transformation etc. med hjälp av paketet java.util.stream. Det finns inget behov av att förvirra java.util.streams med Java InputStreams eller OutputStreams eftersom det inte finns något samband mellan dem. En av de främsta fördelarna med Stream API är att det inte ändrar källan. dvs Om en uppsättning data filtreras skapas en ny uppsättning data med filtrerad data i stället för att modifiera den ursprungliga källan. Stream API utvärderar koden endast när den behövs och den uppdaterar inte koden mer än en gång. Om upprepning måste göras måste en ny ström genereras. Flera fördefinierade metoder finns för att stödja detta. För att uppdatera strömmen kan följande kod användas.

Koda:

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

3. Metod för alla ()

För att upprepa samlingsramen erbjuder Java SE8 en ny metod kallad forEach som definieras i Iterable-gränssnittet. ForEach () -slinga kan användas i en samlingsklass som utvidgar gränssnittet Iterable. Eftersom denna metod matar in en enda parameter, kan ett lambda-uttryck också skickas som en parameter.

Koda:

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

4. Standardmetod

Normalt kan icke-abstrakta metoder inte läggas till gränssnitt. Men när det gäller Java 8 tillåter det att lägga till dessa metoder i gränssnitt. Dessa metoder skrivs med ett nyckelordsinställning och kallas standardmetoder. Eftersom det är icke-abstrakta metoder kan metodkroppen också inkluderas. Intressant nog garanterar denna funktion också den binära kompatibiliteten med äldre kodversioner.

Koda:

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

5. Date Time API

I Java 8 har ett nytt Time API och Date API införts där hanteringsdatum är på en annan metod jämfört med andra versioner av Java. Dessa klasser kallas också JSR-310, ThreeTen.

Följande är klasserna Tid och Datum som finns tillgängliga i Java. tidspaket:

  • Jtime.LocalDate klass
  • LocalTime klass
  • LocalDateTime klass
  • Månadsdagskurs
  • OffsetTime klass
  • OffsetDateTime klass
  • Klockaklass
  • ZonedDateTime klass
  • ZoneId-klass
  • ZoneOffset klass
  • Årsklass
  • YearMonth klass
  • Periodskurs
  • Varaktighet
  • Omedelbar klass
  • DayOfWeek enum
  • Månad enum

Koda:

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

6. Nashorn Javascript Engine

Nashorn är en JavaScript-motor som hjälper till att driva JavaScript-kod i Java Virtual Machine (JVM) dynamiskt.

Det kan göras med två metoder som nämns nedan.

  1. Med hjälp av kommandoradsverktyget jjs.
  2. Genom att ställa in den i Java-källkod.

Följande steg kan utföras för att köra med kommandoradsverktyget jjs.

  • Skapa en .js-fil js.
  • Skriv och spara följande kod i filen.

Koda:

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

  • Den öppna kommandoradsterminalen
  • Skriv kommandot jjs Welcome.js och klicka på Enter.
  • När kommandot har utförts, visas utdata nedan.

Utgång :

7. Metodreferenser

Metodreferenser är en annan funktion som introduceras i Java 8 som kan användas i funktionella gränssnittsmetoder. På ett annat sätt kan man säga att de är en delmängd av en annan java-funktion, lambda-uttryck. Det beror på att en metodreferens också kan användas om ett lambda-uttryck kan användas.

Metoder kan vara:

  • Hänvisning till konstruktör
  • Hänvisning till statisk metod
  • Hänvisning till en instansmetod

Hänvisningen till den statiska metoden kan vara som visas nedan

Koda:

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

8. StringJoiner

En ny slutklass StringJoiner har lagts till Java 8 i java. utnyttja paketet. En sekvens med tecken kan konstrueras separerade av avgränsare som komma (, ), bindestreck (-), etc.

Koda:

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

Produktion:

Säkerhetsförbättringar

Förutom dessa funktioner görs också flera andra säkerhetsförbättringar till Java SE8. Dom är:

  • Public Key Cryptography Standards 11 (PKCS) har utökats till att omfatta 64-bitars stöd för operativsystemet Windows.
  • För UNIX-plattformar har två nya implementationer presenterats. Det erbjuder blockerande och icke-blockerande beteende.
  • I SunJCE-leverantören läggs också AES- och PBE-algoritmer såsom PBEWithSHA256AndAES_128 och PBEWithSHA512AndAES_256 till.
  • Java SE 8 stöder SNI-tillägget (Server Name Indication) som utökar TLS / SSL-protokollen för att ansluta under handskakning för att stödja serverapplikationer.

Slutsats

Java SE8 är den nya versionen av Java utvecklad av Oracle som erbjuder flera funktioner. Lambda-uttryck anses vara det viktigaste inslaget bland dem. I det här dokumentet förklaras detaljer i Java SE 8 och säkerhetsförbättringar.

Rekommenderade artiklar

Detta är en guide till Vad är nytt i Java 8 ?. Här diskuterar vi de olika åtta funktionerna i nya java 8. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer-

  1. CardLayout i Java
  2. Omvänd nummer i Java
  3. JComboBox i Java
  4. StringBuffer i Java
  5. Arrays i Java-programmering
  6. Statisk metod för JavaScript | exempel

Kategori: