Introduzione a Java 8

Come tutti sappiamo, Java è uno dei linguaggi di programmazione più potenti. Una nuova versione di Java, Java SE 8 è stata rilasciata da Oracle il 18 marzo 2014. Questa versione innovativa di Java viene utilizzata principalmente per piattaforme di sviluppo software. Esistono diverse funzionalità in Java8 che sono gli aggiornamenti alla versione esistente delle librerie di programmazione, JVM e Strumenti. Si dice che la caratteristica più importante sia l'introduzione delle espressioni lambda di cui discuteremo nella sezione seguente insieme ad altre caratteristiche.

Nuove funzionalità di Java 8

Per la programmazione Java, Java SE 8 offre numerose funzionalità. Alcuni di loro sono

  • Espressioni Lambda
  • API Stream
  • Metodo ForEach ()
  • Metodo predefinito
  • Data Ora API
  • Motore JavaScript di Nashorn
  • Riferimenti ai metodi
  • StringJoiner

Ora, esaminiamo ciascuno di essi in dettaglio.

1. Espressione lambda

L'espressione lambda è una funzione anonima (una funzione senza nome) che aiuta a scrivere codice in un determinato stile funzionale. Il metodo Single Abstract (SAM) può essere implementato in modo chiaro e conciso usando un'espressione. Poiché i dati possono essere iterati, filtrati ed estratti, è molto utile, specialmente nella libreria di raccolta. L'espressione lambda aiuta anche a ridurre la complessità del codice. Di seguito è la sintassi di un'espressione lambda:

Sintassi:

(Parameters) -> Expression

Codice:

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

2. API Stream

API Stream offre una tecnica per l'elaborazione dei dati in diversi modi come filtro, estrazione, trasformazione, ecc. Con l'aiuto del pacchetto java.util.stream. Non è necessario confondere java.util.streams con Java InputStreams o OutputStreams in quanto non esiste alcuna relazione tra di loro. Uno dei principali vantaggi dell'API Stream è che non altera la sua fonte. cioè se un set di dati viene filtrato, viene creato un nuovo set di dati con dati filtrati anziché modificare l'origine originale. L'API Stream valuta il codice solo quando è necessario e non itera il codice più di una volta. Se è necessario ripetere la reiterazione, è necessario generare un nuovo flusso. Diversi metodi predefiniti sono presenti per supportare questo. Per iterare lo stream, è possibile utilizzare il seguente codice.

Codice:

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

3. Metodo ForEach ()

Al fine di scorrere su Collection Framework, Java SE8 offre un nuovo metodo chiamato forEach che è definito nell'interfaccia Iterable. Il ciclo ForEach () può essere utilizzato in una classe di raccolta che estende l'interfaccia Iterable. Poiché questo metodo immette un singolo parametro, un'espressione lambda può anche essere passata come parametro.

Codice:

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

4. Metodo predefinito

Normalmente, i metodi non astratti non possono essere aggiunti alle interfacce. Ma, nel caso di Java 8, consente di aggiungere quei metodi nelle interfacce. Questi metodi sono scritti con una parola chiave predefinita e noti come metodi predefiniti. Poiché sono metodi non astratti, è possibile includere anche il corpo del metodo. È interessante notare che questa funzionalità garantisce anche la compatibilità binaria con le versioni precedenti di codice.

Codice:

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

5. Data Ora API

In Java 8, sono state introdotte una nuova API Time e Date API in cui le date di gestione sono in un metodo diverso rispetto ad altre versioni di Java. Queste classi sono anche chiamate JSR-310, ThreeTen.

Di seguito sono riportate le classi di ora e data disponibili in Java. pacchetto orario:

  • Classe Jtime.LocalDate
  • Classe LocalTime
  • Classe LocalDateTime
  • Classe MonthDay
  • Classe OffsetTime
  • Classe OffsetDateTime
  • Classe di clock
  • Classe ZonedDateTime
  • Classe ZoneId
  • Classe ZoneOffset
  • Classe anno
  • Classe YearMonth
  • Classe del periodo
  • Classe di durata
  • Classe istantanea
  • DayOfWeek enum
  • Enum mensile

Codice:

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

6. Motore Javascript Nashorn

Nashorn è un motore JavaScript che aiuta a eseguire il codice JavaScript in Java Virtual Machine (JVM) in modo dinamico.

Può essere fatto usando due metodi menzionati di seguito.

  1. Con l'aiuto dello strumento da riga di comando jjs.
  2. Impostandolo nel codice sorgente Java.

Per eseguire utilizzando lo strumento da riga di comando jjs, è possibile eseguire i seguenti passaggi.

  • Crea un file .js js.
  • Scrivi e salva il seguente codice nel file.

Codice:

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

  • Il terminale della riga di comando aperto
  • Scrivi il comando jjs welcome.js e fai clic su Invio.
  • Una volta eseguito il comando, verrà visualizzato l'output di seguito.

Uscita :

7. Riferimenti ai metodi

Riferimenti ai metodi è un'altra funzionalità introdotta in Java 8 che può essere utilizzata nei metodi di interfaccia funzionale. In un altro modo, si può dire che sono un sottoinsieme di un'altra funzione Java, espressioni lambda. È perché un riferimento al metodo può essere utilizzato anche se è possibile utilizzare un'espressione lambda.

I metodi possono essere:

  • Riferimento al costruttore
  • Riferimento al metodo statico
  • Riferimento a un metodo di istanza

Il riferimento al metodo statico può essere come mostrato di seguito

Codice:

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

8. StringJoiner

Un nuovo StringJoiner di classe finale è stato aggiunto a Java 8 in Java. pacchetto util. Una sequenza di caratteri può essere costruita separata da delimitatori come virgola (, ), trattino (-), ecc.

Codice:

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

Produzione:

Miglioramenti della sicurezza

Oltre a queste funzionalità, molti altri miglioramenti della sicurezza vengono apportati anche a Java SE8. Loro sono:

  • Il Public Key Cryptography Standards 11 (PKCS) è stato esteso per comprendere i supporti a 64 bit per il sistema operativo Windows.
  • Per le piattaforme UNIX, sono state presentate due nuove implementazioni. Offre un comportamento bloccante e non bloccante.
  • Nel provider SunJCE vengono aggiunti anche algoritmi AES e PBE come PBEWithSHA256AndAES_128 e PBEWithSHA512AndAES_256.
  • Java SE 8 supporta l'estensione SNI (Server Name Indication) che estende i protocolli TLS / SSL per connettersi durante l'handshaking per il supporto di applicazioni server.

Conclusione

Java SE8 è la nuova versione di Java sviluppata da Oracle che offre diverse funzionalità. L'espressione lambda è considerata la caratteristica più significativa tra loro. In questo documento, le funzionalità di Java SE 8 e i miglioramenti della sicurezza sono spiegati in dettaglio.

Articoli consigliati

Questa è una guida alle novità di java 8 ?. Qui discutiamo le diverse otto caratteristiche del nuovo java 8. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. CardLayout in Java
  2. Numero inverso in Java
  3. JComboBox in Java
  4. StringBuffer in Java
  5. Matrici nella programmazione Java
  6. Metodo statico JavaScript | Esempi

Categoria: