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 leException
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 atry-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
)