ИздаванС на 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). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°Ρ‚Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK Π΅Ρ‚Π°Π»ΠΎΠ½Π½Π° рСализация Π½Π° Java 17 Π΅ напълно ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΠΎΠ΄ лицСнзия 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 (Write XOR Execute), ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ страницитС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° запис ΠΈ изпълнСниС. (ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС изпълнява само слСд Π·Π°Π±Ρ€Π°Π½Π° Π½Π° запис, Π° запис Π² страницата Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΅ възмоТСн само слСд Π·Π°Π±Ρ€Π°Π½Π° Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ).
  • Π’ΡŠΡ€Π½Π°Ρ‚ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ само Π½Π° строго (strictfp) сСмантика Π·Π° ΠΈΠ·Ρ€Π°Π·ΠΈ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая. ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π·Π° Π½Π°Π»ΠΈΡ‡Π½Π°Ρ‚Π° сСмантика β€ždefaultβ€œ, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‰Π° ΠΎΡ‚ вСрсия Java 1.2, която Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΡˆΠ΅ опростявания Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° систСми с ΠΌΠ½ΠΎΠ³ΠΎ стари матСматичСски копроцСсори x87 (слСд появата Π½Π° инструкциитС SSE2 нСобходимостта ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° сСмантика ΠΎΡ‚ΠΏΠ°Π΄Π½Π°), Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ интСрфСйси към Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° псСвдослучайни числа, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΏΠΎ-качСствСна гСнСрация Π½Π° случайни числа. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Π·Π° гСнСрация Π½Π° псСвдослучайни числа. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ случайни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° строга инкапсулация Π½Π° всички Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° JDK, освСн ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ API, ΠΊΠ°Ρ‚ΠΎ sun.misc.Unsafe. Π‘Ρ‚Ρ€ΠΎΠ³Π°Ρ‚Π° инкапсулация Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΎΡ‚ ΠΊΠΎΠ΄ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ класовС, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°. ΠŸΡ€Π΅Π΄ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° строга инкапсулация моТСшС Π΄Π° бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½ Ρ‡Ρ€Π΅Π· опцията β€žβ€”illegal-access=permitβ€œ, Π½ΠΎ сСга тя Π΅ обявСна Π·Π° остаряла. Π—Π° прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ класовС, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°, трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· опцията β€žβ€”add-opensβ€œ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Add-Opens Π² манифСст Ρ„Π°ΠΉΠ»Π°.
  • На прилоТСнията Π΅ прСдоставСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° опрСдСлят Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ Π·Π° дСсСриализация Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° зависят ΠΎΡ‚ контСкста ΠΈ Π΄Π° сС ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π² зависимост ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ дСсСриализация. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ са ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ Π·Π° цялата Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина (JVM-wide), Ρ‚.Π΅. ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‚ Π½Π΅ само самото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  • Π’ 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, сp1251 ΠΈ Ρ‚.Π½.).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ интСрфСйс 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