Java SE 15 release

Nei seis moannen fan Γ»ntwikkeling, Oracle frijlitten perron JavaSE 15 (Java Platform, Standard Edition 15), it iepen-boarne OpenJDK-projekt wurdt brΓ»kt as referinsjeimplementaasje. Java SE 15 behΓ’ldt efterΓΊtkompatibiliteit mei eardere releases fan it Java-platfoarm; alle earder skreaune Java-projekten sille sΓ»nder feroaringen wurkje as se wurde lansearre Γ»nder de nije ferzje. Ready-to-install Java SE 15 builds (JDK, JRE en Server JRE) taret foar Linux (x86_64), Windows en macOS. Referinsje-ymplemintaasje Γ»ntwikkele troch it OpenJDK-projekt Java 15 is folslein iepen boarne Γ»nder de GPLv2-lisinsje, mei GNU ClassPath-ΓΊtsΓ»nderings wΓͺrtroch dynamyske keppeling mei kommersjele produkten mooglik is.

Java SE 15 is klassifisearre as in algemiene stipe-release en sil updates trochgean oant de folgjende release. De branch fan Long Term Support (LTS) soe Java SE 11 wΓͺze moatte, dy't oant 2026 updates sil trochgean. De foarige LTS-tΓ»ke fan Java 8 sil oant desimber 2020 wurde stipe. De folgjende LTS-release is pland foar septimber 2021. Lit ΓΊs jo herinnerje dat te begjinnen mei de frijlitting fan Java 10, it projekt oerstapt nei in nij Γ»ntwikkelingsproses, wat in koartere syklus betsjuttet foar de foarming fan nije releases. Nije funksjonaliteit is no Γ»ntwikkele yn ien konstant bywurke mastertΓ»ke, dy't klear makke wizigingen omfettet en wΓͺrfan tΓ»ken elke seis moanne fertakke wurde om nije releases te stabilisearjen.

Из ynnovaasjes Java 15 kin mark:

  • ВстроСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° создания Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи EdDSA (Edwards-Curve Digital Signature Algorithm RFC 8032). ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ рСализация EdDSA Π½Π΅ зависит ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊ ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ (обСспСчСно постоянноС врСмя всСх вычислСний) ΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ECDSA, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Π‘ΠΈ, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹. НапримСр, EdDSA ΠΏΡ€ΠΈ использовании эллиптичСской ΠΊΡ€ΠΈΠ²ΠΎΠΉ со 126-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ дСмонстрируСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ECDSA с эллиптичСской ΠΊΡ€ΠΈΠ²ΠΎΠΉ secp256r1 ΠΈ 128-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.
  • Added ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Ρ… (Β«sealedΒ») классов ΠΈ интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами ΠΈ интСрфСйсами для наслСдования, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ пСрСопрСдСлСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π—Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ классы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ограничСния использования супСркласса, Ρ‡Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа, основанный Π½Π° явном пСрСчислСнии подклассов, Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

    package com.example.geometry;

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

  • Added ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° скрытых классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ скрытых классов являСтся использованиС Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… классы Π²ΠΎ врСмя выполнСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΈΡ… косвСнно, Ρ‡Π΅Ρ€Π΅Π· refleksje. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ классы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», поэтому ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ для доступа ΠΈΠ· статичСски сгСнСрированных классов Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ лишь ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ потрСблСния памяти. Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ классы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· нСстандартного 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 мс);

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ Π²Π²Π΅Π΄Π΅Π½Π° Π² язык ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° tekst blokken β€” Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² исходный ΠΊΠΎΠ΄ многострочныС тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· примСнСния Π² Π½ΠΈΡ… экранирования символов ΠΈ сохраняя исходноС форматирования тСкста Π² Π±Π»ΠΎΠΊΠ΅. ΠžΠ±Ρ€Π°ΠΌΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° осущСствляСтся трСмя Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ.

    НапримСр, вмСсто ΠΊΠΎΠ΄Π°

    String html = " Β» +
    "\n\t" + " Β» +
    "\n\t\t" + " \"Java 1 is hjir!\" Β» +
    "\n\t" + " Β» +
    "\n" + " ";

    jo kinne oantsjutte:

    String html = """


    Β»Java 1\
    is hjir!

    """;

  • Redesigned API Legacy DatagramSocket. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ java.net.DatagramSocket ΠΈ java.net.MulticastSocket, Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ сопровоТдСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡƒΡŽ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Loom. На случай Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ совмСстимости с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ старая рСализация Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΈ jdk.net.usePlainDatagramSocketImpl.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° вторая ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация patroan matching yn 'e "instanceof" operator, wΓͺrtroch jo fuortendaliks in lokale fariabele kinne definiearje om tagong te krijen ta de kontrolearre wearde. Jo kinne bygelyks fuortendaliks skriuwe "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" sΓ»nder eksplisyt te definiearjen "String s = (String) obj".

    wie:

    if (obj instanceof Group) {
    Group group = (Group)obj;
    var entries = group.getEntries();
    }

    No kinne jo dwaan sΓ»nder de definysje "Groep groep = (Groep) obj":

    if (obj instanceof Group group) {
    var entries = group.getEntries();
    }

  • Suggested вторая ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Β«opnimme", dy't in kompakte foarm leveret foar it definiearjen fan klassen, wΓͺrtroch jo kinne foarkomme dat jo ferskate metoaden op leech nivo eksplisyt definiearje, lykas equals(), hashCode() en toString() yn gefallen dΓͺr't gegevens allinich opslein wurde yn fjilden wΓͺrfan it gedrach net feroaret. As in klasse standert ymplemintaasjes brΓ»kt fan 'e metoaden equals (), hashCode () en toString (), kin it dwaan sΓ»nder har eksplisite definysje:

    iepenbiere record BankTransaction (LocalDate date,
    dΓ»bele bedrach
    String beskriuwing) {}

    Dizze deklaraasje sil automatysk ymplemintaasjes tafoegje fan 'e metoaden equals (), hashCode () en toString () neist de konstruktor- en getter-metoaden.

  • Foarsteld Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ API Foreign-Memory Access, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Java-прилоТСниям бСзопасно ΠΈ эффСктивно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ областям памяти, Π²Π½Π΅ ΠΊΡƒΡ‡ΠΈ Java, манипулируя Π½ΠΎΠ²Ρ‹ΠΌΠΈ абстракциями MemorySegment, MemoryAddress ΠΈ MemoryLayout.
  • Ynvalide ΠΈ объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΠΏΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Biased Locking, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ²ΡˆΠ°ΡΡΡ Π² HotSpot JVM для сокращСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Данная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° потСряла Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° систСмах с Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ инструкциями, прСдоставляСмыми соврСмСнными CPU, ΠΈ слишком Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠ° для сопровоТдСния ΠΈΠ·-Π·Π° своСй слоТности.
  • Oankundige ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ RMI Activation, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ RMI Activation устарСл, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π² разряд ΠΎΠΏΡ†ΠΈΠΈ Π΅Ρ‰Ρ‘ Π² Java 8 ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ примСняСтся Π² соврСмСнной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.
  • Wiske JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ Nashorn, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» объявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ Π² Java SE 11.
  • Fuorthelle ΠΏΠΎΡ€Ρ‚Ρ‹ для ОБ Solaris ΠΈ процСссоров SPARC (Solaris/SPARC, Solaris/x64 ΠΈ Linux/SPARC). Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ сообщСству ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй OpenJDK, Π½Π΅ тратя врСмя Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ особСнностСй, спСцифичных для Solaris ΠΈ SPARC.

Boarne: opennet.ru

Add a comment