Java 12 Выпущена С Выражениями Switch


Java 12, последний шестимесячный выпуск Java, был выпущен с поддержкой выражений переключения и включением сборщика мусора с низкой паузой Шенандоа.

В новом выпуске есть восемь основных улучшений, начиная с выражений переключения. Это все еще функция предварительного просмотра, и она расширяет оператор switch, чтобы его можно было использовать как оператор или выражение. Какую бы форму вы ни использовали, вы можете использовать либо традиционную, либо упрощенную область действия и поведение потока управления.

Oracle говорит, что в дополнение к упрощению повседневного кодирования это дополнение подготавливает путь для использования сопоставления шаблонов в операторе switch. Сопоставление шаблонов доступно в качестве еще одной функции языка предварительного просмотра.

В настоящее время поток управления блоками коммутаторов по умолчанию проваливается, поэтому требуется оператор break, чтобы избежать остальных операторов Case в блоке, который тестируется и потенциально выполняется. Новые выражения коммутатора вводят новую форму метки коммутатора, написанную “case L ->”, чтобы указать, что только код справа от метки должен выполняться, если метка соответствует. Например:

switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY -> System.out.println(7);
    case THURSDAY, SATURDAY -> System.out.println(8);
    case WEDNESDAY -> System.out.println(9);
}

Следующие улучшения в новом выпуске относятся к текущему сборщику мусора. Отныне сборщик мусора будет автоматически возвращать память кучи Java в операционную систему во время простоя, а не ждать, пока полная сборка мусора вернет память в операционную систему, и он также будет лучше соблюдать время паузы.

До сих пор сборщик мусора иногда начинал объем работы, который занимал больше времени, чем цель паузы, что означало, что задача была выполнена. В улучшенной версии, если это происходит, сборщик мусора снижает свои целевые показатели. 

Все еще занимаясь сбором мусора, Шенандоа была добавлена в экспериментальную версию. Shenandoah-это новый алгоритм сбора мусора Java с низким временем паузы. Это сокращает время паузы GC, выполняя работу по эвакуации одновременно с запущенными потоками Java. Время паузы в Shenandoah не зависит от размера кучи, что означает, что у вас будет одинаковое время паузы, независимо от того, составляет ли ваша куча 200 МБ или 200 ГБ.

Еще одним улучшением является добавление базового набора микробных меток в исходный код JDK, а также упрощение для разработчиков запуска существующих микробных меток и создания новых. Существует также новый API констант JVM, который можно использовать для моделирования номинальных описаний ключевых файлов классов и артефактов времени выполнения.

Выпуск с открытым исходным кодом OpenJDK теперь доступен вместе с версией коммерческой лицензии. JDK 12 получит минимум два обновления, прежде чем за ним последует Oracle JDK 13, который должен выйти в сентябре 2019 года.


Добавить комментарий