Java version
JDK 1.0 - 1996
J2SE 5.0 - 2004:
- enum,
- @anotatoin,
- generics,***
- Методы с неопределённым числом параметров,
- Autoboxing/Unboxing(преобразование между int — Integer),***
- foreach,
- Javadoc
Java SE 6 - 2006:
- Коллекции,
- повысилась скорость вычислений на 70 %
Java SE 7 - 2011:
- Изменение синтаксиса языка Java (Project Coin)
- String в блоке switch
- Закрытие используемых ресурсов в блоке try (try-with-resources) — работает при использовании интерфейса AutoCloseable.
- перечисление обрабатываемых исключений в catch (… | … | …)
- JDBC 4.1 и Rowset 1.1 (Кроме того, объекты данного типа могут использоваться при отсутствии постоянного соединения с базой данных. При этом объект типа RowSet будет автоматически соединяться с базой при необходимости получения из нее данных.)
https://ru.wikipedia.org/wiki/Java
Java SE 8
- Полноценная поддержка лямбда-выражений
- Ключевое слово default в интерфейсах
- Ссылки на методы и конструкторы
- Встроенные функциональные интерфейсы
- Функциональные интерфейсы
- Предикаты
- Функции
- Поставщики
- Потребители
- Компараторы
- Опциональные значения
- Потоки (stream) для работы с коллекциями
- Filter
- Sorted
- Map
- Match
- Count
- Reduce
- Параллельные потоки (последовательная/параллельная сортировка)
- Ассоциативные массивы - новые хорошие методы для работы с map
- putIfAbsent
- forEach
- ...
- API для работы с датами
(see full information in original https://habrahabr.ru/post/216431/)
*** - Часто задаваемые вопросы