Вышла Java 7

29 июля 2011, 01:12
Вот так незаметно и между делом вышла 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 можно найти здесь. Всем приятного кофе-брейка!
Обсуждение