ИзданиС на Java SE 17

Π‘Π»Π΅Π΄ ΡˆΠ΅ΡΡ‚ΠΌΠ΅ΡΠ΅Ρ‡Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, компанията Oracle обяви ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Java SE 17 (Java Platform, Standard Edition 17), чиято Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° рСализация Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ OpenJDK. Π‘ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° някои остарСли Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Java SE 17 Π·Π°ΠΏΠ°Π·Π²Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Java β€” ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΏΠΎ-Ρ€Π°Π½ΠΎ написанитС Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Ρ‰Π΅ работят Π±Π΅Π· промяна ΠΏΡ€ΠΈ стартиранС Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия. Π“ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π·Π° инсталиранС вСрсии Π½Π° Java SE 17 (JDK, JRE ΠΈ Server JRE) са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Linux (x86_64, AArch64), Windows (x86_64) ΠΈ macOS (x86_64, AArch64). Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π°Ρ‚Π° рСализация Π½Π° Java 17, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK, Π΅ напълно ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΠΎΠ΄ лицСнзия GPLv2 с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ GNU ClassPath, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ.

Java SE 17 Π΅ класифицирана ΠΊΠ°Ρ‚ΠΎ вСрсия с Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° (LTS), обновлСния Π·Π° която Ρ‰Π΅ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π΄ΠΎ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π° вСрсия Java 16 Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π°. ΠœΠΈΠ½Π°Π»Π°Ρ‚Π° LTS вСрсия Java 11 Ρ‰Π΅ бъдС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° Π΄ΠΎ 2026 Π³ΠΎΠ΄ΠΈΠ½Π°. Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° LTS вСрсия Ρ‰Π΅ бъдС пусната ΠΏΡ€Π΅Π· сСптСмври 2024 Π³ΠΎΠ΄ΠΈΠ½Π°. НапомнямС, Ρ‡Π΅ ΠΎΡ‚ вСрсия Java 10 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π° Π½Π° Π½ΠΎΠ² процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π° ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΈ Ρ†ΠΈΠΊΠ»ΠΈ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ вСрсии. Новата функционалност сСга сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π² постоянно Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° основна ΠΊΠ»ΠΎΠ½ΠΊΠ°, Π² която сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π²Π΅Ρ‡Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ измСнСния ΠΈ ΠΎΡ‚ която Π½Π° всСки ΡˆΠ΅ΡΡ‚ мСсСца сС отклоняват ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π·Π° стабилизация Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ издания.

ΠžΡ‚ Π½ΠΎΠ²ΠΎΠ²ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΡΡ‚Π° Π² Java 17 сС открояват:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ СкспСримСнтална рСализация Π½Π° шаблонно ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π² ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ β€žswitchβ€œ, позволяваща Π² Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ β€žcaseβ€œ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π΅ Ρ‚ΠΎΡ‡Π½ΠΈ стойности, Π° гъвкави шаблони, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ цяла сСрия стойности, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΅ Π±ΠΈΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ обСмисти Π²Π΅Ρ€ΠΈΠ³ΠΈ ΠΎΡ‚ ΠΈΠ·Ρ€Π°Π·ΠΈ β€žif…elseβ€œ. ОсвСн Ρ‚ΠΎΠ²Π°, Π²ΡŠΡ‚Ρ€Π΅ Π² β€žswitchβ€œ Π΅ осигурСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° стойности NULL. Object o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΈ ("sealed") класовС ΠΈ интСрфСйси, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ класовС ΠΈ интСрфСйси Π·Π° наслСдяванС, Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ прСопрСдСлянС Π½Π° рСализацията. Π—Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΈΡ‚Π΅ класовС ΡΡŠΡ‰ΠΎ прСдоставят ΠΏΠΎ-Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° супСрклас, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ, основаващи сС Π½Π° явното изброяванС Π½Π° ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈΡ‚Π΅ подкласовС Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅. package com.example.geometry; public sealed class Shape permits com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° вСрсия Π½Π° API Vector, прСдоставящ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ изчислСния, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции Π½Π° процСсоритС x86_64 ΠΈ AArch64 ΠΈ позволяват Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° мноТСство стойности (SIMD). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° вСкторизация Π½Π° скаларни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, прСдоставяни ΠΎΡ‚ JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° HotSpot, новият API Π΄Π°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° явно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° вСкторизацията Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° вСрсия Π½Π° API Foreign Function & Memory, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ прилоТСнията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° взаимодСйстват с ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΠΈ, находящи сС извън Java runtime. Новият API позволява Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, изпълнявани извън JVM, ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚, която Π½Π΅ сС управлява ΠΎΡ‚ JVM. НапримСр, Π΅ възмоТно Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ външни сподСлСни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Π° сС Π΄ΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ процСса, Π±Π΅Π· Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JNI.
  • ДвигатСлят Π·Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π·Π° macOS, ΠΊΠΎΠΉΡ‚ΠΎ осигурява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° API Java 2D, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² API Swing, Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° графичния API Metal. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° macOS всС ΠΎΡ‰Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° OpenGL, Π° Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Metal Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° "-Dsun.java2d.metal=true" ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎΠ½Π΅ Π½Π° вСрсия macOS 10.14.x.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠΎΡ€Ρ‚ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° macOS/AArch64 (ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π½Π° Apple с Π½ΠΎΠ²ΠΈ Ρ‡ΠΈΠΏΠΎΠ²Π΅ Apple M1). ΠžΡΠΎΠ±Π΅Π½ΠΎΡΡ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° W^X (Запис XOR ИзпълнСниС), ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ страницитС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° запис ΠΈ изпълнСниС. (ΠΊΠΎΠ΄ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС изпълнСн само слСд Π·Π°Π±Ρ€Π°Π½Π° Π½Π° записа, Π° Π·Π°ΠΏΠΈΡΡŠΡ‚ Π² страницата Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΅ възмоТСн само слСд Π·Π°Π±Ρ€Π°Π½Π° Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ).
  • Π’ΡŠΡ€Π½Π°Ρ‚Π° Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° само Π½Π° стриктна (strictfp) сСмантика Π·Π° ΠΈΠ·Ρ€Π°Π·ΠΈ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π°Π»ΠΈΡ‡Π½Π°Ρ‚Π° сСмантика β€ždefaultβ€œ, която Π²ΠΊΠ»ΡŽΡ‡Π²Π° опростявания Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° систСми с ΠΌΠ½ΠΎΠ³ΠΎ стари матСматичСски сопроцСссори x87, Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½ΠΎ с вСрсия Java 1.2 (слСд появата Π½Π° инструкции SSE2 Π½ΡƒΠΆΠ΄Π°Ρ‚Π° ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° сСмантика ΠΈΠ·Ρ‡Π΅Π·Π½Π°).
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ интСрфСйси към Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° псСвдослучайни числа, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΏΠΎ-качСствСна гСнСрация Π½Π° случайни числа. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Π·Π° гСнСрация Π½Π° псСвдослучайни числа. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ случайни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.
  • Π—Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° Π΅ стриктната инкапсулация Π½Π° всички Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° JDK, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ API, ΠΊΠ°Ρ‚ΠΎ sun.misc.Unsafe. Π‘Ρ‚Ρ€ΠΈΡ‚Π°Ρ‚Π° инкапсулация Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΎΡ‚ ΠΊΠΎΠ΄ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ класовС, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°. ΠŸΡ€Π΅Π΄ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° строга инкапсуляция моТСшС Π΄Π° бъдС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ с опцията β€žβ€”illegal-access=permitβ€œ, Π½ΠΎ сСга тя Π΅ обявСна Π·Π° остаряла. Π—Π° прилоТСния, изискващи Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ класовС, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°, трябва ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ с опцията β€žβ€”add-opensβ€œ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Add-Opens Π² Ρ„Π°ΠΉΠ»Π° с манифСст.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° опрСдСлят Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ Π·Π° дСсСриализация Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° зависят ΠΎΡ‚ контСкста ΠΈ Π΄Π° сС ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π² зависимост ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ дСсСриализация. Π—Π°Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π½Π° Π½ΠΈΠ²ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина (Π² цялата JVM), Ρ‚.Π΅. ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‚ Π½Π΅ само самото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ външни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  • Π’ Swing Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ javax.swing.filechooser.FileSystemView.getSystemIcon Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΈ с голям Ρ€Π°Π·ΠΌΠ΅Ρ€, позволяващ подобряванС Π½Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° интСрфСйса Π½Π° Π΅ΠΊΡ€Π°Π½ΠΈ с висока ΠΏΠ»ΡŠΡ‚Π½ΠΎΡΡ‚ Π½Π° пиксСлитС (HighDPI).
  • API-Ρ‚ΠΎ java.net.DatagramSocket Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към Π³Ρ€ΡƒΠΏΠΈ Multicast Π±Π΅Π· нСобходимост ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ API java.net.MulticastSocket.
  • Π£ΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ IGV (Ideal Graph Visualizer), ΠΊΠΎΠΉΡ‚ΠΎ осигурява ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π° визуализация Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° ΠΊΠΎΠ΄Π° Π² JIT-ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° HotSpot VM C2.
  • Π’ JavaDoc, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° javac, ΠΏΡ€ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° сСга сС ΡƒΠΊΠ°Π·Π²Π° Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°Ρ‚Π° линия Π² изходния Ρ„Π°ΠΉΠ» ΠΈ мястото Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ свойство native.encoding, отразяващо ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° систСмната ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° символитС (UTF-8, koi8-r, cp1251 ΠΈ Π΄Ρ€.).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ интСрфСйс java.time.InstantSource, позволяващ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π±Π΅Π· ΠΏΡ€ΠΈΠ²Ρ€ΡŠΠ·ΠΊΠ° към часови пояс.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ API java.util.HexFormat Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎ прСдставянС ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
  • Π’ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ blackhole, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° нСиспользваСмия ΠΊΠΎΠ΄ (dead-code elimination), ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° тСстовС Π·Π° производитСлност.
  • Π’ Runtime Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция Β«-Xlog:asyncΒ» Π·Π° запис Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ.
  • ΠŸΡ€ΠΈ установяванС Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ TLS 1.3 (ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ TLS 1.2).
  • ΠŸΡ€Π΅Π²Π΅Π΄Π΅Π½ Π² катСгорията Π½Π° замислСнитС Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ ΠΏΡ€Π΅Π΄ΠΈ обявСното остарял API Applet (java.applet.Applet*, javax.swing.JApplet), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° стартиранС Π½Π° Java прилоТСния Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Π·Π°Π³ΡƒΠ±ΠΈΠ» актуалност слСд спиранС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Java плъгина Π·Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΈ).
  • ΠŸΡ€Π΅Π²Π΅Π΄Π΅Π½ Π² катСгорията Π½Π° замислСнитС Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Security Manager, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚Π΄Π°Π²Π½Π° Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠ» актуалност ΠΈ Π΅ останал Π½Π΅Π½ΡƒΠΆΠ΅Π½ слСд спиранС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° браузСрния плъгин.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° RMI Activation, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ остарял, ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° опция ΠΎΡ‰Π΅ Π² Java 8 ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ‚Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.
  • ΠžΡ‚ SDK Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ СкспСримСнталСн ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ JIT (just-in-time) Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° компилация Π½Π° Java ΠΊΠΎΠ΄ Π·Π° HotSpot JVM, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° компилация (AOT, ahead-of-time) Π½Π° класовС Π² машинСн ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΈ стартиранС Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина. ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π΅ написан Π½Π° Java ΠΈ Π΅ основан Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Graal. ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° изисква Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ²ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π²Π°Ρ‚ сСбС си Π² условия Π½Π° нСпостоянСн интСрСс ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster