ИздањС Јава Π‘Π• 15

Након ΡˆΠ΅ΡΡ‚ мСсСци Ρ€Π°Π·Π²ΠΎΡ˜Π°, ΠžΡ€Π°Ρ†Π»Π΅ ΠΏΡƒΡˆΡ‚Π΅Π½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Јава Π‘Π• 15 (Јава ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, стандардно издањС 15), ΠžΠΏΠ΅Π½ΠˆΠ”Πš ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° сС користи ΠΊΠ°ΠΎ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°. Јава Π‘Π• 15 ΠΎΠ΄Ρ€ΠΆΠ°Π²Π° компатибилност ΡƒΠ½Π°Π·Π°Π΄ са ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΠΌ издањима Јава ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅; сви ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ написани Јава ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚ΠΈ Ρ›Π΅ Ρ€Π°Π΄ΠΈΡ‚ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π° ΠΊΠ°Π΄Π° сС ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΠΎΠΌ Π²Π΅Ρ€Π·ΠΈΡ˜ΠΎΠΌ. Јава Π‘Π• 15 Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ спрСмнС Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ (ΠˆΠ”Πš, ΠˆΠ Π• ΠΈ Π‘Π΅Ρ€Π²Π΅Ρ€ ΠˆΠ Π•) ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΡ™Π΅Π½ Π·Π° Π›ΠΈΠ½ΡƒΠΊ (ΠΊ86_64), Виндовс ΠΈ ΠΌΠ°Ρ†ΠžΠ‘. Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½Π° ΠΎΠ΄ странС ΠžΠΏΠ΅Π½ΠˆΠ”Πš ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π° Јава КБНУМКБ јС ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ Π“ΠŸΠ›Π²2 Π»ΠΈΡ†Π΅Π½Ρ†ΠΎΠΌ, са ГНУ Π¦Π»Π°ΡΡΠŸΠ°Ρ‚Ρ… ΠΈΠ·ΡƒΠ·Π΅Ρ†ΠΈΠΌΠ° који Π΄ΠΎΠ·Π²ΠΎΡ™Π°Π²Π°Ρ˜Ρƒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΎ повСзивањС са ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π½ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠ°.

Јава Π‘Π• 15 јС класификована ΠΊΠ°ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ издањС Π·Π° ΠΏΠΎΠ΄Ρ€ΡˆΠΊΡƒ ΠΈ наставићС Π΄Π° добија Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ° Π΄ΠΎ слСдСћСг издања. Π“Ρ€Π°Π½Π° Π·Π° Π΄ΡƒΠ³ΠΎΡ€ΠΎΡ‡Π½Ρƒ ΠΏΠΎΠ΄Ρ€ΡˆΠΊΡƒ (Π›Π’Π‘) Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π±ΡƒΠ΄Π΅ Јава Π‘Π• 11, која Ρ›Π΅ наставити Π΄Π° добија Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ° Π΄ΠΎ 2026. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π° Π›Π’Π‘ Π³Ρ€Π°Π½Π° Јава 8 Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π½Π° Π΄ΠΎ Π΄Π΅Ρ†Π΅ΠΌΠ±Ρ€Π° 2020. Π‘Π»Π΅Π΄Π΅Ρ›Π΅ Π›Π’Π‘ издањС јС Π·Π°ΠΊΠ°Π·Π°Π½ΠΎ Π·Π° сСптСмбар 2021. ΠŸΠΎΠ΄ΡΠ΅Ρ‚ΠΈΠΌΠΎ, ΠΏΠΎΡ‡Π΅Π²ΡˆΠΈ ΠΎΠ΄ издавања ЈавС 10, ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ јС ΠΏΡ€Π΅ΡˆΠ°ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ процСс, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ˜ΡƒΡ›ΠΈ ΠΊΡ€Π°Ρ›ΠΈ циклус Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΡšΠ΅ Π½ΠΎΠ²ΠΈΡ… издања. Нова функционалност јС сада Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½Π° Ρƒ јСдној стално Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎΡ˜ главној Π³Ρ€Π°Π½ΠΈ, која ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ Π³ΠΎΡ‚ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ ΠΈ ΠΈΠ· којС сС Π³Ρ€Π°Π½Π΅ Π³Ρ€Π°Π½Π°Ρ˜Ρƒ сваких ΡˆΠ΅ΡΡ‚ мСсСци ΠΊΠ°ΠΊΠΎ Π±ΠΈ сС стабилизовала Π½ΠΎΠ²Π° издања.

Од ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΡ˜Π΅ Јава КБНУМКБ ΠΌΠΎΠΆΠ΅ сС ΠΎΠ·Π½Π°ΠΊΠ°:

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

    package com.example.geometry;

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

  • Π”ΠΎΠ΄Π°Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° скрытых классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ скрытых классов являСтся использованиС Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… классы Π²ΠΎ врСмя выполнСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΈΡ… косвСнно, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Ρ€Π°Π·. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ классы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», поэтому ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ для доступа ΠΈΠ· статичСски сгСнСрированных классов Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ лишь ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ потрСблСния памяти. Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ классы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· нСстандартного API sun.misc.Unsafe::defineAnonymousClass, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ для повсСмСстного использования сборщик мусора ZGC (Z Garbage Collector). ZGC Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² пассивном Ρ€Π΅ΠΆΠΈΠΌΠ΅, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ·-Π·Π° сборки мусора (врСмя остановки ΠΏΡ€ΠΈ использовании ZGC Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10 мс.) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с нСбольшими, Ρ‚Π°ΠΊ ΠΈ с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ ΠΊΡƒΡ‡Π°ΠΌΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚.
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ для повсСмСстного использования
    сборщик мусора Π‘Ρ…Π΅Π½Π°Π½Π΄ΠΎΠ°Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ приостановками (Low-Pause-Time Garbage Collector). Shenandoah Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ врСмя остановок Π²ΠΎ врСмя сборки мусора Π·Π° счёт провСдСния чистки ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π°Π·ΠΌΠ΅Ρ€ вносимых сборщиком мусора Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ прСдсказуСм ΠΈ Π½Π΅ зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡƒΡ‡ΠΈ, Ρ‚.Π΅. для ΠΊΡƒΡ‡ Π² 200 MB ΠΈ 200 GB Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ (Π½Π΅ ΠΈΠ·Π»Π°Π·ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ 50 мс ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² 10 мс);

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

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

    Π‘Ρ‚Ρ€ΠΈΠ½Π³ Ρ…Ρ‚ΠΌΠ» = "" +
    "\Π½\Ρ‚" + "" +
    "\Π½\Ρ‚\Ρ‚" + "\"Јава 1 јС ΠΎΠ²Π΄Π΅!\"" +
    "\Π½\Ρ‚" + "" +
    "\Π½" + "";

    ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚ΠΈ:

    Π‘Ρ‚Ρ€ΠΈΠ½Π³ Ρ…Ρ‚ΠΌΠ» = """


    »Јава 1\
    јС ΠΎΠ²Π΄Π΅!β€œ

    """;

  • ΠŸΡ€Π΅Ρ€Π°Ρ’Π΅Π½ΠΎ API Legacy DatagramSocket. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ java.net.DatagramSocket ΠΈ java.net.MulticastSocket, Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ сопровоТдСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡƒΡŽ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Разбој. На случай Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ совмСстимости с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ старая рСализация Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΈ jdk.net.usePlainDatagramSocketImpl.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° вторая ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация поклапањС ΠΎΠ±Π»ΠΈΠΊΠ° Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ β€žΠΈΠ½ΡΡ‚Π°Π½Ρ†Π΅ΠΎΡ„β€œ, који Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΎΠ΄ΠΌΠ°Ρ… Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»Π½Ρƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ Π·Π° приступ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎΡ˜ врСдности. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄ΠΌΠ°Ρ… написати β€žΠΈΡ„ (обј инстанцСоф Π‘Ρ‚Ρ€ΠΈΠ½Π³ с && с.Π»Π΅Π½Π³Ρ‚Ρ…() > 5) {.. с.цонтаинс(..) ..}β€œ Π±Π΅Π· Сксплицитног Π΄Π΅Ρ„ΠΈΠ½ΠΈΡΠ°ΡšΠ° β€žΠ‘Ρ‚Ρ€ΠΈΠ½Π³ с = (Π‘Ρ‚Ρ€ΠΈΠ½Π³) ΠΎΠ±Ρ˜β€œ.

    Π‘ΠΈΠ»ΠΎ јС:

    ΠΈΡ„ (обј инстанцСоф Π“Ρ€ΠΎΡƒΠΏ) {
    Π“Ρ€ΡƒΠΏΠ½Π° Π³Ρ€ΡƒΠΏΠ° = (Π“Ρ€ΡƒΠΏΠ°)обј;
    Π²Π°Ρ€ СнтриСс = Π³Ρ€ΠΎΡƒΠΏ.гСтЕнтриСс();
    }

    Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π· Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π΅ β€žΠ“Ρ€ΠΎΡƒΠΏ Π³Ρ€ΠΎΡƒΠΏ = (Π“Ρ€ΠΎΡƒΠΏ) ΠΎΠ±Ρ˜β€œ:

    ΠΈΡ„ (обј инстанцСоф Π“Ρ€ΠΎΡƒΠΏ Π³Ρ€ΠΎΡƒΠΏ) {
    Π²Π°Ρ€ СнтриСс = Π³Ρ€ΠΎΡƒΠΏ.гСтЕнтриСс();
    }

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ вторая ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Β«Π·Π°ΠΏΠΈΡβ€œ, који ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π°Π½ ΠΎΠ±Π»ΠΈΠΊ Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡΠ°ΡšΠ΅ класа, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜ΡƒΡ›ΠΈ Π²Π°ΠΌ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ Сксплицитно Π΄Π΅Ρ„ΠΈΠ½ΠΈΡΠ°ΡšΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ниског Π½ΠΈΠ²ΠΎΠ° ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су Скуалс(), хасхЦодС() ΠΈ Ρ‚ΠΎΠ‘Ρ‚Ρ€ΠΈΠ½Π³() Ρƒ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° ΠΊΠ°Π΄Π° сС ΠΏΠΎΠ΄Π°Ρ†ΠΈ Ρ‡ΡƒΠ²Π°Ρ˜Ρƒ само Ρƒ ΠΏΠΎΡ™ΠΈΠΌΠ° Ρ‡ΠΈΡ˜Π΅ сС понашањС Π½Π΅ мСња. Када класа користи стандарднС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Скуалс(), хасхЦодС() ΠΈ Ρ‚ΠΎΠ‘Ρ‚Ρ€ΠΈΠ½Π³(), ΠΌΠΎΠΆΠ΅ Π±Π΅Π· ΡšΠΈΡ…ΠΎΠ²Π΅ СксплицитнС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π΅:

    јавни запис Банкарска Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° (Π›ΠΎΡ†Π°Π»Π”Π°Ρ‚Π΅ Π΄Π°Ρ‚ΡƒΠΌ,
    двоструки износ
    Опис стринга) {}

    Ова Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡ˜Π° Ρ›Π΅ аутоматски Π΄ΠΎΠ΄Π°Ρ‚ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Скуалс(), хасхЦодС() ΠΈ Ρ‚ΠΎΠ‘Ρ‚Ρ€ΠΈΠ½Π³() ΠΏΠΎΡ€Π΅Π΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° конструктора ΠΈ Π³Π΅Ρ‚Ρ‚Π΅Ρ€.

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

Π˜Π·Π²ΠΎΡ€: ΠΎΠΏΠ΅Π½Π½Π΅Ρ‚.Ρ€Ρƒ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€