جاوا SE 14 خوشې کول

د شپږو میاشتو پراختیا وروسته، اوریکل خپور شوی پلیټ فارم جاوا SE 14 (جاوا پلیټ فارم، معیاري نسخه 14)، د خلاصې سرچینې OpenJDK پروژه د حوالې پلي کولو په توګه کارول کیږي. جاوا SE 14 د جاوا پلیټ فارم پخوانیو خپرونو سره شاته مطابقت ساتي؛ ټولې پخوانۍ لیکل شوې جاوا پروژې به پرته له بدلونونو کار وکړي کله چې د نوي نسخې لاندې پیل شي. د نصب کولو لپاره چمتو د جاوا SE 14 جوړونه (JDK، JRE او سرور JRE) چمتو شوی د لینکس (x86_64)، وینډوز او macOS لپاره. د حوالې پلي کول د OpenJDK پروژې لخوا رامینځته شوي جاوا 14 د GNU ClassPath استثنا سره د GPLv2 جواز لاندې په بشپړ ډول خلاص سرچینه ده چې د سوداګریزو محصولاتو سره متحرک اړیکې ته اجازه ورکوي.

جاوا SE 14 د عمومي ملاتړ ریلیز په توګه طبقه بندي شوی او تر راتلونکي خوشې کیدو پورې به تازه معلوماتو ترلاسه کولو ته دوام ورکړي. د اوږدې مودې ملاتړ (LTS) څانګه باید د Java SE 11 وي، کوم چې به تر 2026 پورې تازه معلومات ترلاسه کولو ته دوام ورکړي. د جاوا 8 پخوانی LTS څانګه به د دسمبر 2020 پورې ملاتړ شي. راتلونکی LTS خپرونه د سپتمبر 2021 لپاره ټاکل شوې. راځئ چې تاسو ته یادونه وکړو چې د جاوا 10 په خپرولو سره پیل کول، پروژه د نوي پراختیا پروسې ته بدله شوې، د نوي ریلیزونو رامینځته کولو لپاره لنډ دوره معنی لري. نوي فعالیت اوس په دوامداره توګه تازه شوي ماسټر برانچ کې رامینځته شوی ، کوم چې چمتو شوي بدلونونه پکې شامل دي او له هغې څخه څانګې په هرو شپږو میاشتو کې د نوي ریلیزونو ثبات لپاره شاخ کیږي.

له نوښتونه جاوا 14 کولای شي مارک:

  • Добавлена экспериментальная поддержка د نمونې سمون په "instanceof" آپریټر کې، کوم چې تاسو ته اجازه درکوي سمدلاسه محلي متغیر تعریف کړئ ترڅو چک شوي ارزښت ته لاسرسی ومومئ. د مثال په توګه، تاسو کولی شئ سمدلاسه "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" پرته له دې چې په واضح ډول د "String s = (String) obj" تعریف کړئ.

    وو:

    که (د ګروپ مثال) {
    ډله ډله = (ډله) اعتراض؛
    var entries = group.getEntries();
    }

    اوس تاسو کولی شئ د "گروپ ګروپ = (گروپ) اعتراض" تعریف پرته ترسره کړئ:

    که (د ګروپ ګروپ اعتراض مثال) {
    var entries = group.getEntries();
    }

  • Добавлена экспериментальная поддержка нового ключевого слова «ریکارډ"، کوم چې د ټولګیو تعریف کولو لپاره یو کمپیکٹ فورمه چمتو کوي، تاسو ته اجازه درکوي چې په واضح ډول د مختلفو ټیټې کچې میتودونو تعریف کولو څخه ډډه وکړئ لکه equals()، hashCode() او toString() په داسې قضیو کې چیرې چې ډاټا یوازې په ساحو کې ساتل کیږي چې چلند یې نه بدلیږي. کله چې یو ټولګی د مساواتو()، hashCode() او toString() میتودونو معیاري تطبیق کاروي، دا کولی شي د دوی واضح تعریف پرته ترسره کړي:

    د عامه ریکارډ بانک لیږد (د ځایی نیټې نیټه،
    دوه چنده
    د توری تفصیل) {}

    دا اعالمیه به په اتوماتيک ډول د جوړونکي او ترلاسه کونکي میتودونو سربیره د مساواتو() ، هش کوډ() او toString() میتودونو پلي کول اضافه کړي.

  • Стандартизирована и включена по умолчанию поддержка новой формы выражений «switch», не требующей указания оператора «break», позволяющей объединять повторяющиеся метки и допускающей использование не только в форме оператора, но и как выражения.

    var log = switch (event) {
    case PLAY -> «User has triggered the play button»;
    case STOP, PAUSE -> «User needs a break»;
    default -> {
    String message = event.toString();
    LocalDateTime now = LocalDateTime.now();
    yield «Unknown event » + message +
    » logged on » + now;
    }
    };

  • Расширена экспериментальная поддержка د متن بلاکونه — новой формы строковых литералов, позволяющих включать в исходный код многострочные текстовые данные без применения в них экранирования символов и сохраняя исходное форматирования текста в блоке. Обрамление блока осуществляется тремя двойными кавычками. В Java 14 в текстовых блоках реализована поддержка escape-последовательности «\s» для определения одного пробела и «\» для объединения со следующей строкой (игнорирования перевода строки, когда нужно вывести очень длинную строку). Например, вместо кода

    تار html = " »+
    "\n\t" + " »+
    "\n\t\t" + " \"جاوا 1 دلته دی!\" »+
    "\n\t" + " »+
    "\n" + " ";

    تاسو کولی شئ مشخص کړئ:

    تار html = """


    »جاوا ۱۵\
    دلته دی!

    """;

  • Расширена информативность диагностики при возникновении исключений NullPointerException. Если раньше сообщение об ошибке лишь ссылалось на номер строки, то теперь в нём детализируется какой из методов вызвал исключение. Расширенная диагностика пока включается только при запуске с флагом «-XX:+ShowCodeDetailsInExceptionMessages». Например, при указании данного флага исключение в строке

    var name = user.getLocation().getCity().getName();

    приведёт к выводу сообщения

    Exception in thread «main» java.lang.NullPointerException: Cannot invoke «Location.getCity()»
    because the return value of «User.getLocation()» is null
    at NullPointerExample.main(NullPointerExample.java:5):5)

    которое позволяет понять, что метод Location.getCity() не был вызван, а User.getLocation() вернул значение null.

  • پلي شوي предварительный вариант утилиты jpackage, позволяющей создавать пакеты для самодостаточных (self-contained) Java-приложений. Утилита базируется на javapackager из JavaFX и позволяет формировать пакеты в форматах, родных для различных платформ (msi и exe для Windows, pkg и dmg для macOS, deb и rpm для Linux). Пакеты включают все необходимые зависимости.
  • В сборщик мусора G1 زیاته کړه новый механизм распределения памяти, учитывающий специфику работу на крупных системах, использующих архитектуру NUMA. Новый распределитель памяти включается при помощи флага «+XX:+UseNUMA» и позволяет существенно поднять производительность на NUMA-системах.
  • زیاته کړه API для отслеживания на лету событий JFR (JDK Flight Recorder), например для организации непрерывного мониторинга.
  • زیاته کړه модуль jdk.nio.mapmode, предлагающий новые режимы (READ_ONLY_SYNC, WRITE_ONLY_SYNC) для создания отображаемых байтовых буферов (MappedByteBuffer), ссылающихся на энергонезависимую память (NVM).
  • پلي شوي предварительный вариант API Foreign-Memory Access, позволяющий Java-приложениям безопасно и эффективно получить доступ к областям памяти, вне кучи Java, манипулируя новыми абстракциями MemorySegment, MemoryAddress и MemoryLayout.
  • Объявлены устаревшими порты для ОС Solaris и процессоров SPARC (Solaris/SPARC, Solaris/x64 и Linux/SPARC) c намерением удалить данные порты в будущем. Перевод указанных портов в разряд устаревших позволит сообществу ускорить разработку новых возможностей OpenJDK, не тратя время на поддержание особенностей, специфичных для Solaris и SPARC.
  • ړنګ شوی сборщик мусора CMS (Concurrent Mark Sweep), который два года назад был отмечен устаревшим и остался без сопровождения (на смену CMS давно пришёл сборщик мусора G1). Кроме того, اعلان کړی устаревшим применение комбинации алгоритмов сборки мусора ParallelScavenge и SerialOld (запуск с опциями «-XX:+UseParallelGC -XX:-UseParallelOldGC»).
  • Обеспечена экспериментальная поддержка сборщика мусора ZGC (Z Garbage Collector) на платформах macOS и Windows (ранее поддерживался только в Linux). ZGC работает в пассивном режиме, насколько это возможно минимизирует задержки из-за сборки мусора (время остановки при использовании ZGC не превышает 10 мс.) и может работать как с небольшими, так и с огромными кучами, размером от нескольких сотен мегабайт до многих терабайт.
  • لرې کړل инструментарий и API для сжатия JAR-файлов с использованием алгоритма Pack200.

سرچینه: opennet.ru

Add a comment