Java 12 стала общедоступной 19 марта 2019 года, скачать Java 12 можно здесь или это Архив OpenJDK .
Функции Java 12.
- 1. JEP 189: Шенандоа: Сборщик Мусора С Низкой Задержкой (Экспериментальный)
- 2. JEP 230: Набор микрочипов
- 3. JEP 325: Переключение выражений (Предварительный просмотр)
- 4. JEP 334: API констант JVM
- 5. JEP 340: Один Порт AArch64, А Не Два
- 6. JEP 341: Архивы компакт-дисков по умолчанию
- 7. JEP 344: Прерываемые смешанные коллекции для G1
- 8. JEP 346: Быстрое возвращение Неиспользуемой зафиксированной памяти из G1
Функции разработчика Java 12.
Выражение переключения (предварительный просмотр)
1. JEP 189: Шенандоа: Сборщик Мусора С Низкой Задержкой (Экспериментальный)
Шенандоа – это новый сборщик мусора с низкой паузой и одновременным сбором мусора, прочитайте это исследовательская работа ,
Этот GC является экспериментальной функцией, и нам необходимо использовать следующие параметры, чтобы включить новый GC Шенандоа.
-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC
Тем не менее, как Oracle JDK, так и OpenJDK не содержат этого нового GC Shenandoah , прочитайте это также Не все сборки OpenJDK 12 включают Shenandoah: Вот почему .
C:\Users\mkyong> java -version java version "12" 2019-03-19 Java(TM) SE Runtime Environment (build 12+33) Java HotSpot(TM) 64-Bit Server VM (build 12+33, mixed mode, sharing) C:\Users\mkyong> java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC Error occurred during initialization of VM Option -XX:+UseShenandoahGC not supported
Чтобы попробовать Shenandoah GC, нам нужна другая сборка JDK, например AdoptOpenJDK .
P.S Этот GC Shenandoah стал функцией продукта в Java 15 JEP 379 .
Дальнейшее Чтение
- JEP 189: Шенандоа: Сборщик Мусора С Низкой Задержкой (Экспериментальный)
- Шенандоа открытый JDK Домой
2. JEP 230: Набор микрочипов
Добавлен ряд тестов Java Microbenchmark Harness (JMH) в исходный код JDK, для тех, кто заинтересован в добавлении или изменении самого исходного кода JDK, теперь у них есть способ сравнить производительность.
Примечание Извините, не уверен, как это работает, пожалуйста, прокомментируйте ниже, если вы знаете, как запускать тестовые тесты Jdk.
Дальнейшее Чтение
3. JEP 325: Переключение выражений (Предварительный просмотр)
Этот JEP расширил существующие операторы switch (ничего не возвращает) для поддержки выражений switch (что-то возвращает).
Традиционные операторы переключения, мы можем возвращать значение, присваивая значение переменной:
private static String getText(int number) { String result = ""; switch (number) { case 1, 2: result = "one or two"; break; case 3: result = "three"; break; case 4, 5, 6: result = "four or five or six"; break; default: result = "unknown"; break; }; return result; }
В Java 12 мы можем использовать break
или прецедентное право ->
для возврата значения из переключателя.
private static String getText(int number) { String result = switch (number) { case 1, 2: break "one or two"; case 3: break "three"; case 4, 5, 6: break "four or five or six"; default: break "unknown"; }; return result; }
регистр L ->
синтаксис.
private static String getText(int number) { return switch (number) { case 1, 2 -> "one or two"; case 3 -> "three"; case 4, 5, 6 -> "four or five or six"; default -> "unknown"; }; }
Примечание Выражения этого переключателя имеют второй предварительный просмотр в Java 13 (отброшен параметр break
в пользу yield
), и выражения этого переключателя стали стандартной функцией в Java 14 .
Дальнейшее Чтение
- JEP 325: Переключение выражений (Предварительный просмотр)
- Выражения переключения Java 12
Чтобы включить функции предварительного просмотра Java 12:
javac --enable-preview --release 12 Example.java java --enable-preview Example
4. JEP 334: API констант JVM
Новый пакет java.lang.constant
, , список новых классов и интерфейсов для моделирования ключевых файлов классов и артефактов среды выполнения, например, пул констант
Дальнейшее Чтение
5. JEP 340: Один Порт AArch64, А Не Два
До Java 12 существует два разных исходных кода или порта для 64-разрядной архитектуры ARM .
- Oracle –
src/точка доступа/процессор/arm
- Красная Шляпа? –
src/точка доступа/процессор/aarch64
Java 12 удалила Oracle src/hotspot/cpu/arm
порт и сохранила только один порт src/hotspot/cpu/aarch64
и сделала это aarch64
сборкой по умолчанию для 64-разрядной архитектуры ARM.
Дальнейшее Чтение
6. JEP 341: Архивы компакт-дисков по умолчанию
Совместное использование данных класса (CDS) улучшило время запуска за счет повторного использования существующего файла архива.
До Java 12 нам нужно использовать -Xshare: дамп
для создания файла архива CDS для классов JDK. В Java 12 на сервере /bin/есть новый файл
classes.jsa /
каталог, файл архива компакт-дисков по умолчанию для классов JDK.
Дальнейшее Чтение
7. JEP 344: Прерываемые смешанные коллекции для G1
Этот JEP улучшает производительность сборщика мусора (G1), разделяя проблемный набор сбора на две части – обязательную и необязательную. G1 отменит необязательную часть, если не хватит времени для ее обработки.
Дальнейшее Чтение
8. JEP 346: Быстрое возвращение Неиспользуемой зафиксированной памяти из G1
Этот ДЖИП улучшает производительность сборщика мусора (G1). Если приложение малоактивно или простаивает, G1 периодически запускает параллельный цикл, чтобы определить общее использование кучи Java и вернуть неиспользуемую память кучи Java в операционную систему.
Дальнейшее Чтение
Скачать Исходный Код
$клон git $клон git
$компакт-диск java-12
Рекомендации
- Проект OpenJDK 12
- История версий Java
- Шенандоа открытый JDK Домой
- Исследовательский документ Шенандоа
- Выражения переключения Java 12
- Выражения переключения Java 13
- Жгут проводов Java Microbenchmark (JMH)
- Жгут проводов Java Microbenchmark (JMH)
- Архитектура ARM
- Совместное использование Данных Классов
- 39 Новых функций (и API) в JDK 12
- Википедия – Мусор – первый сборщик
- Начало работы со сборщиком мусора G1
- Что нового в безопасности Java?
Оригинал: “https://mkyong.com/java/what-is-new-in-java-12/”