Java 7 Features
Binary Literals Strings in switch Statement Try with Resources or ARM (Automatic Resource Management) Multiple Exception Handling underscore in literals Type Inference for Generic Instance Creation using Diamond Syntax Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods Try-with-resources statement this: BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); } becomes: try (BufferedReader br = new BufferedReader(new FileReader(path)) { return br.readLine(); } You can declare more than one resource to close: try ( InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest)) { // code } Underscores in numeric literals int one_million = 1_000_000; Strings in switch String s = ... switch(s) { case "quux": processQuux(s); // fall-through case "fo...