English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java 8 (noto anche come jdk 1.8) è una versione principale dello sviluppo del linguaggio Java. Oracle Corporation ha rilasciato Java 8 il 18 marzo 2014, supporta la programmazione funzionale, un nuovo motore JavaScript, un nuovo API delle date, un nuovo API Stream, ecc.
Java 8 ha aggiunto molte nuove funzionalità, discuteremo principalmente le seguenti:
Espressioni Lambda − Lambda permette di passare una funzione come parametro a un metodo (passare una funzione come parametro a un metodo).
Riferimento metodo − La referenza di metodo fornisce una sintassi molto utile che permette di riferirsi direttamente ai metodi o costruttori di classi o oggetti Java esistenti (esempio). Utilizzata insieme a lambda, la referenza di metodo rende la costruzione del linguaggio più compatta e concisa, riducendo il codice ridondante.
Metodi di default − Il metodo predefinito è un metodo che ha una implementazione all'interno di un'interfaccia.
Nuovi strumenti − Nuovi strumenti di compilazione, come: il motore Nashorn jjs, l'analizzatore di dipendenze delle classi jdeps.
API Stream − L'API Stream (java.util.stream) ha introdotto lo stile di programmazione funzionale nel Java.
API Data e Ora − Miglioramento nella gestione delle date e degli orari.
Classe Optional − La classe Optional è diventata parte della libreria di Java 8, utilizzata per risolvere l'eccezione di punteria nullo.
Nashorn, motore JavaScript − Java 8 fornisce un nuovo motore JavaScript Nashorn, che ci permette di eseguire applicazioni JavaScript specifiche sulla JVM.
Per ulteriori nuove funzionalità, consulta il sito web ufficiale:What's New in JDK 8
Negli esempi degli articoli su Java 8, utilizziamo sempre l'ambiente jdk 1.8, puoi utilizzare il seguente comando per visualizzare la versione corrente di jdk:
$ java -version java versione "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
Java 8 desidera avere il proprio stile di programmazione e distinguersi da Java 7, di seguito è riportato un esempio che mostra il formato di programmazione di Java 7 e Java 8:
import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator; public class Java8Tester { public static void main(String args[]) { List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("w3codebox "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("w3codebox "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); Java8Tester tester = new Java8Tester(); System.out.println("使用 Java 7 语法: "); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("使用 Java 8 语法: "); tester.sortUsingJava8(names2); System.out.println(names2); } // 使用 java 7 排序 private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); } // Utilizzare l'ordinamento java 8 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } }
Esegui lo script sopra, il risultato di output sarà:
$ javac Java8Tester.java $ java Java8Tester Usare la sintassi Java 7: [Baidu, Google, w3codebox, Sina, Taobao] Usare la sintassi Java 8: [Baidu, Google, w3codebox, Sina, Taobao]
In seguito, illustreremo in dettaglio le nuove funzionalità di Java 8:
Numero | Caratteristiche |
---|---|
1 | Espressioni Lambda |
2 | Riferimento metodo |
3 | Interfaccia funzionale |
4 | Metodi di default |
5 | Stream |
6 | Classe Optional |
7 | Nashorn, motore JavaScript |
8 | Nuovo API di data/ora |
9 | Base64 |