Java SE 15 scaoileadh

Tar éis sé mhí d'fhorbairt, Oracle scaoileadh ardán Iávais 15 (Java Platform, Standard Edition 15), úsáidtear an tionscadal foinse oscailte OpenJDK mar chur chun feidhme tagartha. Coinníonn Java SE 15 comhoiriúnacht siar le heisiúintí an ardáin Java roimhe seo; oibreoidh gach tionscadal Java a scríobhadh roimhe seo gan athruithe nuair a sheoltar é faoin leagan nua. Tógálacha Java SE 15 atá réidh le suiteáil (JDK, JRE agus Server JRE) ullmhaithe le haghaidh Linux (x86_64), Windows agus macOS. Cur i bhfeidhm tagartha arna fhorbairt ag an tionscadal OpenJDK Java 15 foinse oscailte go hiomlán faoin gceadúnas GPLv2, le heisceachtaí GNU ClassPath a cheadaíonn nascadh dinimiciúil le táirgí tráchtála.

Tá Java SE 15 rangaithe mar scaoileadh tacaíochta ginearálta agus leanfaidh sé de bheith ag fáil nuashonruithe go dtí an chéad scaoileadh eile. Ba cheart go mbeadh an brainse Tacaíochta Fadtéarmach (LTS) Java SE 11, a leanfaidh de bheith ag fáil nuashonruithe go dtí 2026. Tabharfar tacaíocht don bhrainse LTS roimhe seo de Java 8 go dtí Nollaig 2020. Tá an chéad eisiúint LTS eile sceidealta do Mheán Fómhair 2021. Cuirfimid i gcuimhne duit, ag tosú le scaoileadh Java 10, gur aistrigh an tionscadal go próiseas forbartha nua, rud a thugann le tuiscint timthriall níos giorra chun eisiúintí nua a fhoirmiú. Forbraítear feidhmiúlacht nua anois i máistirbhrainse amháin a nuashonraítear i gcónaí, lena n-áirítear athruithe réamhdhéanta agus as a ndéantar brainsí a chraobhscaoileadh gach sé mhí chun eisiúintí nua a chobhsú.

As nuálaíochtaí Java 15 Is féidir ceann marc:

  • Встроена поддержка алгоритма создания цифровой подписи EdDSA (Edwards-Curve Digital Signature Algorithm RFC 8032). Предложенная реализация EdDSA не зависит от аппаратных платформ, защищена от атак по сторонним каналам (обеспечено постоянное время всех вычислений) и по производительности опережает существующую реализацию ECDSA, написанную на языке Си, при том же уровне защиты. Например, EdDSA при использовании эллиптической кривой со 126-битным ключом демонстрирует производительность аналогичную ECDSA с эллиптической кривой secp256r1 и 128-битным ключом.
  • Curtha leis экспериментальная поддержка запечатанных («sealed») классов и интерфейсов, которые не могут использоваться другими классами и интерфейсами для наследования, расширения или переопределения реализации. Запечатанные классы также предоставляют более декларативный способ ограничения использования суперкласса, чем модификаторы доступа, основанный на явном перечислении подклассов, разрешённых для расширения.

    package com.example.geometry;

    public sealed class Shape
    permits com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {…}

  • Curtha leis поддержка скрытых классов, которые не могут быть использованы напрямую байткодом других классов. Ключевым назначением скрытых классов является использование во фреймворках, динамически генерирующих классы во время выполнения и использующих их косвенно, через machnamh. Подобные классы обычно имеют ограниченный жизненный цикл, поэтому их поддержание для доступа из статически сгенерированных классов не оправдано и приведёт лишь к увеличению потребления памяти. Скрытые классы также позволяют обойтись без нестандартного API sun.misc.Unsafe::defineAnonymousClass, который намечен на удаление в будущем.
  • Стабилизирован и признан готовым для повсеместного использования сборщик мусора ZGC (Z Garbage Collector). ZGC работает в пассивном режиме, насколько это возможно минимизирует задержки из-за сборки мусора (время остановки при использовании ZGC не превышает 10 мс.) и может работать как с небольшими, так и с огромными кучами, размером от нескольких сотен мегабайт до многих терабайт.
  • Стабилизирован и признан готовым для повсеместного использования
    сборщик мусора Shenandoah, работающий с минимальными приостановками (Low-Pause-Time Garbage Collector). Shenandoah разработан компанией Red Hat и примечателен использованием алгоритма, сокращающего время остановок во время сборки мусора за счёт проведения чистки параллельно с выполнением Java-приложений. Размер вносимых сборщиком мусора задержек предсказуем и не зависит от размера кучи, т.е. для куч в 200 MB и 200 GB задержки будут идентичны (не выходят за пределы 50 мс и обычно укладываются в 10 мс);

  • Стабилизирована и введена в язык поддержка bloic téacs — новой формы строковых литералов, позволяющих включать в исходный код многострочные текстовые данные без применения в них экранирования символов и сохраняя исходное форматирования текста в блоке. Обрамление блока осуществляется тремя двойными кавычками.

    Например, вместо кода

    Teaghrán html = " »+
    "\n\t" + " »+
    "\n\t\t" + " \"Tá Java 1 anseo!\" »+
    "\n\t" + " »+
    "\n" +" ” ;

    is féidir leat a shonrú:

    Teaghrán html = """


    » Java 1\
    atá anseo!

    """;

  • Athdhearadh API Legacy DatagramSocket. Старые реализации java.net.DatagramSocket и java.net.MulticastSocket, заменены на современную реализацию, более простую для отладки и сопровождения, а также совместимую с виртуальными потоками, развиваемыми в рамках проекта Loom. На случай возможного нарушения совместимости с существующим кодом старая реализация не удалена и может быть активирована при помощи опции jdk.net.usePlainDatagramSocketImpl.
  • Предложена вторая экспериментальная реализация meaitseáil patrún san oibreoir “instanceof”, a ligeann duit athróg áitiúil a shainiú láithreach chun rochtain a fháil ar an luach seiceála. Mar shampla, is féidir leat “más rud é (obj instanceof String s && s.length()> 5) {.. s.contains(..) ..}” a scríobh láithreach gan “Teaghrán s = (Teaghrán) obj” a shainmhíniú go sainráite.

    Bhí sé:

    más rud é (obj instance of Group) {
    Grúpa grúpa = (Grúpa) obj;
    iontrálacha var = group.getEntries();
    }

    Anois is féidir leat a dhéanamh gan an sainmhíniú “Grúpa grúpa = (Grúpa) obj”:

    más rud é (obj shampla an ghrúpa Grúpa) {
    iontrálacha var = group.getEntries();
    }

  • Molta вторая экспериментальная реализация ключевого слова «taifead", a sholáthraíonn foirm dhlúth chun aicmí a shainiú, a ligeann duit modhanna éagsúla ísealleibhéil a shainmhíniú go sainráite, mar shampla comhionann(), hashCode() agus toString() i gcásanna nach stóráiltear sonraí ach i réimsí nach n-athraíonn a n-iompraíocht. Nuair a úsáideann aicme feidhmiúcháin chaighdeánacha na modhanna comhionanna(), hashCode() agus toString(), is féidir leis déanamh gan sainmhíniú sainráite orthu:

    taifead poiblí Idirbheart Bainc(Dáta Logánta,
    méid dúbailte
    Cur síos teaghrán) {}

    Leis an dearbhú seo cuirfear i bhfeidhm go huathoibríoch na modhanna comhionanna(), hashCode() agus toString() de bhreis ar na modhanna cruthaitheoir agus faighteoir.

  • Beartaithe второй предварительный вариант API Foreign-Memory Access, позволяющий Java-приложениям безопасно и эффективно получить доступ к областям памяти, вне кучи Java, манипулируя новыми абстракциями MemorySegment, MemoryAddress и MemoryLayout.
  • Faoi mhíchumas и объявлена устаревшей техника оптмизации Biased Locking, применявшаяся в HotSpot JVM для сокращения накладных расходов из-за блокировок. Данная техника потеряла актуальность на системах с атомарными инструкциями, предоставляемыми современными CPU, и слишком трудоёмка для сопровождения из-за своей сложности.
  • D'fhógair устаревшим механизм RMI Activation, который будет удалён в одном из следующих выпусков. Отмечается, что RMI Activation устарел, переведён в разряд опции ещё в Java 8 и почти не применяется в современной практике.
  • Scriosta JavaScript-движок Nashorn, который был объявлен устаревшим в Java SE 11.
  • Bhaint порты для ОС Solaris и процессоров SPARC (Solaris/SPARC, Solaris/x64 и Linux/SPARC). Удаление указанных портов позволит сообществу ускорить разработку новых возможностей OpenJDK, не тратя время на поддержание особенностей, специфичных для Solaris и SPARC.

Foinse: oscailtenet.ru

Add a comment