- Try-with-resources-Catch-Block [0]
- Fork/Join libraries from Doug Lea (author of Executor framework) [1]
- Inferred/Simpler generics in declarations (should have been in Java 5)
- NIO2, brand new/robust filesystem APIs [2]
- NIO2, treat ZIP/JAR files like directories of files for R/W [3]
- SDP support [4]
- String-in-switch (NOTE: check on performance implications of this for tight loops)
NOTE: Read through "COMPILATION" section here for details [6]
- Elliptic curve cryptography (when normal curves just don't cut it)
- Underscores in numbers (e.g. int million = 1_000_000;)
- XRender pipeline on Linux (Swing/Java2D rendering get a big boost)
- New sound synthesizer (replaces a proprietary lib that wasn't OS)
- XML stack finally got updated across the board.
- InvokeDynamic (already talked about numerous times below)
- Other Swing stuff I'm not all that pumped about.
I think the most exciting items are: 1. Try-with-resources
2. NIO2 filesystem API
3. InvokeDynamic
Features that got pushed to 8 (next year) that will be really exciting: - Modular programming (super packages? think OSGi-lite)
- Syntactic Sugar: Collection literals
List<String> people = {"Frank", "Mary", "Satan"};
- Closures
- Modularization of the JDK (JDK gets broken into core modules)
And one that I can't get confirmation on if it's in 7 or got pushed, index-access for List and Maps [5]: - List<String> people = {"Frank", "Mary", "Satan"};
System.out.println("Hello " + people[0]);
I understand that a lot of people don't find Java sexy any more, that is understandable, it has become a platform for what seems like a lot of next-series of languages.That being said, I've been working with Java since 1998 and still love it. I know people get a big kick out of writing code with no exception handlers and no curly braces, and programming is a creative/artistic process so you have to do what feels good... but none of that stuff ever bothered me.
I like being a pedantic programmer.
[0] http://www.javacodegeeks.com/2011/07/java-7-try-with-resourc...
[1] http://artisans-serverintellect-com.si-eioswww6.com/default....
[2] http://openjdk.java.net/projects/jdk7/features/#f250
[3] http://openjdk.java.net/projects/jdk7/features/#fa537814
[4] http://openjdk.java.net/projects/jdk7/features/#f639
[5] http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/0...
[6] http://mail.openjdk.java.net/pipermail/coin-dev/2009-Februar...