English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Introduzione di Base Java

Controllo dei flussi Java

Array Java

Java orientato agli oggetti (I)

Java orientato agli oggetti (II)

Java orientato agli oggetti (III)

Gestione delle Eccezioni Java

Liste di Java

Queue (coda) di Java

Map di Java

Set di Java

Input/Output (I/O) di Java

Reader/Writer di Java

Altri argomenti di Java

Nuove funzionalità Java 8

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.

Nuove funzionalità

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)

Stile di programmazione

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:

NumeroCaratteristiche
1Espressioni Lambda
2Riferimento metodo
3Interfaccia funzionale
4Metodi di default
5Stream
6Classe Optional
7Nashorn, motore JavaScript
8Nuovo API di data/ora
9Base64