Вот так незаметно и между делом вышла 7-ая версия языка Java. Этот релиз с одной стороны долгожданный (предыдущая версия датирована аж далёким 2006-м годом), с другой - разочаровывающий. Из-за долгих бюрократических (и не только) трений в язык было включена лишь небольшая часть запланированных фич. Так, например, за бортом остались модули и замыкания, которые было решено отложить до 8-й версии языка (ожидается в конце 2011 года).
Но что же всё-таки вошло в этот релиз?
Из невидимых для простого обывателя фич, пожалуй, самым значительным улучшением стало появление в Java bytecode инструкции InvokeDynamic, значительно облегчающих перенос на JVM динамически типизированных языков. Также незначительно изменилась архитектура ClassLoader-ов.
Среди изменений, затронувших стандартные библиотеки, стоит отметить появление Fork/Join Framework, который должен значительно упростить многопоточное программирование.
Ну и, наконец, измнения в самом языке. Не сказать, что их много, да и те, что есть, в основном мелкие украшения (как, например, возможность использования знака подчёркивания в цифрах: 1000 == 1_000). Однако кое-что всё-таки порадовало:
Во-первых, это частичный вывод типов для дженериков. Теперь вместо
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>()
можно писать просто
Map<Integer, List<String>> map = new HashMap<>()
С полноценным выводом типов, конечно, не сравнить, но время (и нервы) всё-таки экономит.
Во-вторых, в switch наконец-то можно использовать строки.
В-третьих, похожие эксепшены теперь можно группировать:
try {
...
} catch (FileNotFoundException | IOException e) {
...
}
Ну и, в-четвёртых, наконец появилась автоматическое управление ресурсами:
try (FileInputStream in = new FileInputStream("java7.txt")) {
System.out.println(in.read());
}
Полный список изменений в языке со сравнительными примерами для Java 6 и Java 7 можно найти здесь.
Всем приятного кофе-брейка!
Обсуждение
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.