языки_программирования:java:история_версий_java
Содержание
История версий Java
14 (17 марта 2020)
- Records
- Pattern Matching для instanceof
- Удалён сборщик мусора Concurrent Mark Sweep (CMS)
13 (17 сентября 2019)
- Text Blocks - Использование «»« для создания текстовых блоков без экранирования спец символов.
- Новая реализацию NioSocketImpl.
12 (19 марта 2019)
- Switch Expressions
11 (25 сентября 2018 )
- Ключевое слово var в локальных Лямбда-переменных
- Launch Single-File Source-Code Programs - запуск приложения одной командой java HelloWorld.java
- Remove The Java EE and CORBA Modules — удалены модули Java EE и COBRA
10 (20 марта 2018 )
- Ключевое слово var
- Stream API updates
- Concurrency updates
9 (21 сентября 2017)
- HTTP/2 support
- Jshell - поддержка REPL-подхода (Read-Eval-Print-Loop) в Java
- JigSaw project - поддержка модуляризации в Java
- Stream API updates
- Immutable collevtions - создании и инициализация коллекций в одну строку
- Concurrency updates - реализация Reactive Streams (в т.ч. класс Flow)
- Complete the removal of underscore from the set of legal identifier names - запрет подчёркивания в именах классов
- Support for private methods in interfaces- private и static private методы в интерфейсах
- Compact strings - хранение строк в кодировке LATIN-1, если это возможно
8 (18 марта 2014 )
- Lambda expressions - выражения в функциональном стиле
- @FunctionalInterface - функциональные интерфейсы
- Stream API. - возможность выполнения последовательности операций над элементами массива, а также возможность производить их параллельно (parallelStream)
- Method Reference - ссылки на методы и конструкторы, оператор ::
- Класс Optional
- Repeatable annotations - возможность использовать аннотации одного типа несколько раз над одним объектом
- Interface default method - методы по умолчанию для интерфейсов
- Annotation on Java types - аннотации на типы данных
- Reflection for method parameters - рефлексия для параметров методов
- Date & Time API (java.time) - новое api для работы с датами и временем
- Remove the PermGen - удален PermGen, изменен способ хранения мета-данных классов
7 (7 июля 2011)
- InvokeDynamic - поддержка динамических языков программирования
- Strings in switch. - строки в switch-выражениях
- try-with-resources - автоматическое управление ресурсами, реализующими интерфейс java.lang.AutoCloseable
- Diamond operator <> - улучшенное вычисление типов при создании обобщенных экземпляров
- Simplified varargs method declaration - перенос предупреждения “unsafe operation” вместо объявления метода с переменным количеством аргументов
- Binary integer literals - префикс 0b (int i = 0b0101)
- Underscores in numeric literals - подчеркивания в числах (int i = 1_000)
- Catching multiple exception types - перехват нескольких типов исключений в одном блоке catch (catch(SQLException | IOException e))
- DualPivotQuickSort - в качестве стандартного алгоритма для сортировки примитивов
- TimSort - в качестве стандартного алгоритма для сортировки объектов
- Concurrency utilities - новый синхронизатор Phaser, включён легковесный механизм fork/join
- NIO.2 library - добавлены пакеты java.nio.file, java.nio.file.attribute и java.nio.file.spi
6 (11 декабря 2006)
- Scripting Language Support - общий API для скриптовых языков и встроенный JS-движок Mozilla Rhino
- JDBC 4.0
- Java Compiler API - возможность программного вызова java-компилятора
- JAXB 2.0
- PLuggable Annotations
- @Override
5 (30 сентября 2004)
- Enum - перечислимые типы
- Annotations - аннотации
- Generics - средства обобщённого программирования
- Varargs - методы с неопределённым числом параметров
- Autoboxing/Unboxing — автоматическое преобразование между примитивными типами Java и соответствующими типами-обёртками
- Static import - импорт статических полей и методов
- Foreach
- Javadoc комментарии
1.4 (6 февраля 2002)
- assert
- NIO 2
- Logging API
1.3 (8 мая 2000)
- HotSpot VM
1.2 (8 декабря 1998)
- strictfp keyword
- JDBC
1.1 (19 февраля 1997)
- Inner Classes
- Reflection API
- JavaBeans
- JDBC
- Collections framework