 
          Secondo il calendario pubblicato, la versione finale di Java7 sarà rilasciata il 28 luglio 2011.
Sono già disponibili delle early build con le nuove features ma ovviamente non sono stable build.
Le migliorie del linguaggio:
Vediamo quali sono le principali novità a livello di codice (con degli esempi!):
before:
if(o!=null) { Object o2=o.getSomething() if(o2!=null) return o2.getSomethingElse() };
return null;
after:
return o?.getSomethingh()?.getSomethingElse();
before:
 BufferedReader br = new BufferedReader(new FileReader(path));
 try {
   return br.readLine();
 } finally {
   br.close();
 }
after:
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
  return br.readLine();
}
Chiamata implicita al close() alla fine del blocco try, valido per molti tipi di risorse, un file, una connessione al db, qualsiasi oggetto che attualmente deve chiamare esplicitamente la close()
List list = ["item"];
String item = list[0];
Set set = {"item"};
Map map = {"key" : 1};
int value = map["key"];   
before:
} catch (FirstException ex) {
logger.error(ex);
throw ex;
} catch (SecondException ex) {
logger.error(ex);
throw ex;
}
after:
} catch (FirstException | SecondException ex) {
logger.error(ex);
throw ex;
}
static boolean booleanFromString(String s) {
switch(s) {
case "true":
return true;
case "false":
return false;
}
Map<String, List<String>> anagrams = new HashMap<>();
non è necessario riscrivere “<String, List<String>>” nella new