Hvad er nyt i Java 8? - Funktioner ved Java SE 8 - Sikkerhedsforbedringer

Indholdsfortegnelse:

Anonim

Introduktion til Java 8

Som vi alle ved, er Java et af de mest kraftfulde programmeringssprog. En ny version af Java, Java SE 8, er blevet frigivet af Oracle den 18. marts 2014. Denne innovative udgivelse af Java bruges hovedsageligt til softwareudviklingsplatforme. Der er flere funktioner i Java8, som er opdateringerne til den eksisterende version af programmeringsbiblioteker, JVM og Tools. Den vigtigste funktion siges at være introduktionen af ​​lambda-udtryk, som vi vil diskutere i det følgende afsnit sammen med andre funktioner.

Nye funktioner i Java 8

Til Java-programmering tilbyder Java SE 8 en overflod af funktioner. Nogle af dem er

  • Lambda-udtryk
  • Stream API
  • ForEach () -metode
  • Standardmetode
  • Dato Tid API
  • Nashorn JavaScript-motor
  • Metodehenvisninger
  • StringJoiner

Lad os nu se nærmere på hver enkelt af dem.

1. Lambda-ekspression

Lambda-udtryk er en anonym funktion (en funktion uden navn), der hjælper med at skrive kode i en bestemt funktionel stil. Single Abstract Method (SAM) kan implementeres på en klar og kortfattet måde ved hjælp af et udtryk. Da data kan iteres, filtreres og ekstraheres, er det meget nyttigt, især i samlingsbiblioteket. Lambda-udtryk hjælper også med at reducere kodens kompleksitet. Nedenfor er syntaks for et lambda-udtryk:

Syntaks:

(Parameters) -> Expression

Kode:

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

2. Stream API

Stream API tilbyder en teknik til databehandling på forskellige måder, såsom filtrering, udpakning, transformation osv. Ved hjælp af pakken java.util.stream. Det er ikke nødvendigt at forveksle java.util.streams med Java InputStreams eller OutputStreams, da der ikke er nogen sammenhæng mellem dem. En af de største fordele ved Stream API er, at det ikke ændrer kilden. dvs. Hvis et datasæt filtreres, oprettes et nyt datasæt med filtrerede data i stedet for at ændre den originale kilde. Stream API evaluerer kun koden, når den er nødvendig, og den gentager ikke koden mere end én gang. Hvis gentagelse skal udføres, skal der genereres en ny strøm. Flere prædefinerede metoder er til stede for at understøtte dette. For at itereere strømmen kan følgende kode bruges.

Kode:

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

3. ForEach () -metode

For at itereere over Collection Framework tilbyder Java SE8 en ny metode kaldet forEach, som er defineret i Iterable-grænsefladen. ForEach () -sløjfe kan bruges i en samlingsklasse, der udvider interface Iterable. Da denne metode indlæser en enkelt parameter, kan et lambda-udtryk også sendes som en parameter.

Kode:

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

4. Standardmetode

Normalt kan ikke-abstrakte metoder ikke føjes til grænseflader. Men i tilfælde af Java 8 tillader det at tilføje disse metoder i grænseflader. Disse metoder er skrevet med et nøgleordsstandard og kaldes standardmetoder. Da det er ikke-abstrakte metoder, kan metodekroppen også inkluderes. Interessant nok sikrer denne funktion også den binære kompatibilitet med ældre versioner af kode.

Kode:

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

5. Dato Tid API

I Java 8 er en ny Time API og Date API introduceret, hvor håndteringsdatoer er i en anden metode sammenlignet med andre versioner af Java. Disse klasser kaldes også JSR-310, ThreeTen.

Følgende er klasserne Tid og Dato, der er tilgængelige i Java. tidspakke:

  • Jtime.LocalDate-klasse
  • LocalTime klasse
  • LocalDateTime klasse
  • MånedDag klasse
  • OffsetTime klasse
  • OffsetDateTime-klasse
  • Urklasse
  • ZonedDateTime-klasse
  • ZoneId-klasse
  • ZoneOffset-klasse
  • Årsklasse
  • YearMonth klasse
  • Periodeklasse
  • Varighedsklasse
  • Øjeblikkelig klasse
  • DayOfWeek enum
  • Måned enum

Kode:

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

6. Nashorn Javascript Engine

Nashorn er en JavaScript-motor, der hjælper med at udføre JavaScript-kode i Java Virtual Machine (JVM) dynamisk.

Det kan gøres ved hjælp af to metoder, der er nævnt nedenfor.

  1. Ved hjælp af kommandolinjeværktøjet jjs.
  2. Ved at indstille den i Java-kildekode.

For at udføre ved hjælp af kommandolinjeværktøjet jjs, kan følgende trin udføres.

  • Opret en .js-fil js.
  • Skriv og gem følgende kode i filen.

Kode:

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

  • Den åbne kommandolinjeterminal
  • Skriv kommando jjs Welcome.js, og klik på Enter.
  • Når kommandoen er udført, vises nedenstående output.

Output :

7. Metodehenvisninger

Metodehenvisninger er en anden funktion, der er introduceret i Java 8, der kan bruges i funktionelle interfacemetoder. På en anden måde kan det siges, at de er en undergruppe af en anden java-funktion, lambda-udtryk. Det skyldes, at en metodehenvisning også kan bruges, hvis der kan bruges et lambda-udtryk.

Metoder kan være:

  • Henvisning til konstruktør
  • Henvisning til statisk metode
  • Henvisning til en forekomstmetode

Henvisningen til den statiske metode kan være som vist nedenfor

Kode:

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

8. StringJoiner

En ny sidste klasse StringJoiner er tilføjet til Java 8 i java. util pakke. En række af tegn kan konstrueres adskilt af afgrænsere som komma (, ), bindestreg (-) osv.

Kode:

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

Produktion:

Sikkerhedsforbedringer

Ud over disse funktioner udføres flere andre sikkerhedsforbedringer til Java SE8. De er:

  • Public Key Cryptography Standards 11 (PKCS) er blevet udvidet til at omfatte 64-bit understøtter til operativsystemet, Windows.
  • For UNIX-platforme er to nye implementeringer præsenteret. Det tilbyder blokerende og ikke-blokerende opførsel.
  • I SunJCE-udbyderen tilføjes også AES- og PBE-algoritmer såsom PBEWithSHA256AndAES_128 og PBEWithSHA512AndAES_256.
  • Java SE 8 understøtter SNI-udvidelsen (Server Name Indication), der udvider TLS / SSL-protokollerne til at oprette forbindelse under håndtryk for at understøtte serverapplikationer.

Konklusion

Java SE8 er den nye version af Java udviklet af Oracle, der tilbyder flere funktioner. Lambda-udtryk betragtes som det mest markante træk blandt dem. I dette dokument forklares funktioner i Java SE 8 og sikkerhedsforbedringer detaljeret.

Anbefalede artikler

Dette er en guide til Hvad er nyt i java 8? Her diskuterer vi de forskellige otte funktioner i nye java 8. Du kan også gennemgå vores andre relaterede artikler for at lære mere-

  1. CardLayout i Java
  2. Omvendt nummer i Java
  3. JComboBox i Java
  4. StringBuffer i Java
  5. Arrays i Java-programmering
  6. Statisk JavaScript for JavaScript | eksempler