Tutte le novità di Java 7

A metà 2011 è stata rilasciata la versione 7 di Java [nickname Dolphin].
Due sono le grandi novità di questo rilascio:

  • Java è ora marchiata Oracle (che ha acquisito Sun)
  • La reference implementation è ora OpenJDK (l’implementazione open-source di Java), mentre per le passate versioni rimane HotSpot, la versione di Sun Oracle.

Le novità più interessanti, dal punto di vista delle API, sono:

  • Una (nuova) versione delle API NIO 2 per la gestione e la navigazione del file-system (come ad esempio: Path, Files)
  • Supporto al multiprocessing (ForkJoinTask / RecursiveTask)
  • La possibilità di usare instanze di String come argomento di switch:
    “`
    switch (s) {
    case "foo": break;
    case "bar": break;
    case "foobar": System.out.println("it's foobar!");
    }
    “`
  • Catturare diversi tipi di Exception con una sola catch [separando le Exception con un ‘|’]:
    “`
    try {
    FileInputStream fi = new FileInputStream("foo.txt");
    }
    catch(FileNotFoundException | IoException e) {
    log.error("error: not found or I/O Exception");
    }
    “`
  • try-with-resource [Automatic Resource Management]: dentro ai blocchi try/catch/finally si rimanda la chiusura degli stream/connessioni al finally. Grazie a try-with-resource è la stessa JVM che si occupa di fare ordine con le risorse utilizzate al termine del blocco.
    “`
    try (FileOutputStream fos = new FileOutputStream(f)) {
    fos.write(buf, 0, len);
    }
    catch (Exception e) {
    log.error(e);
    }
    “`
  • Diamond operator (solo sintassi, evitiamo la ripetizione della classe usando i Generics):
    “`
    List<String> foobar = new ArrayList<>();
    “`
  • Leggibilità dei valori numerici (specifichiamo un separatore ‘_’):
    “`
    long accountNumber = 1234_5678_9012L;
    “`
  • JDBC 4.1 (Annotazioni `@Select` e `@Update` per definire le query, `DataSet` sostituisce ResultSet)

Leave a Reply