Набор функций JDK 12 Заморожен


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

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

Две основные области сборщика мусора G1 получили внимание. Коллектор был изменен таким образом, чтобы все паузы в G1 были прерваны. Одной из целей G1 является достижение поставленного пользователем целевого времени паузы для пауз сбора. Однако до сих пор, если слишком большой набор коллекций был запущен, G1 будет ждать дольше, чем желаемая цель времени паузы. Теперь это можно обнаружить и прервать. Второе изменение — это усовершенствование, позволяющее автоматически возвращать память кучи Java в операционную систему во время простоя.

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

Предварительный просмотр расширенного оператора switch является другим основным дополнением к JDK 12. Цель состоит в том, чтобы расширить оператор switch таким образом, чтобы его можно было использовать либо как оператор, либо как выражение, и чтобы обе формы могли использовать либо «традиционную», либо «упрощенную» область действия и поведение потока управления. Эти изменения упростят повседневное кодирование, а также подготовят путь для использования сопоставления шаблонов в switch.

Функция, которая не сделала этого, — это поддержка необработанных строковых литералов. Они предназначались для обеспечения литерала, который мог бы охватывать несколько строк исходного кода и не интерпретировать escape-последовательности, такие как \n или escape-коды Unicode формы \uXXXX.

Решение не включать эту функцию в ее нынешнем виде связано с тем, что она недостаточно хорошо работает, согласно электронному письму Брайана Гетца, архитектора языка Java в Oracle. Он сказал:

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

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


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