ИзданиС Java SE 24 и OpenJDK 24

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

Java SE 24 Π΅ класифицирана Π² катСгорията Π½Π° вСрсии с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, обновлСния Π·Π° която Ρ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎ слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π—Π° Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° (LTS) Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Java SE 21 ΠΈΠ»ΠΈ Java SE 17, обновлСнията Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎ 2031 ΠΈ 2029 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ (общСствСнитС – Π΄ΠΎ 2028 ΠΈ 2026 Π³ΠΎΠ΄ΠΈΠ½ΠΈ). Π Π°Π·ΡˆΠΈΡ€Π΅Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° LTS вСрсията Java SE 8 Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄ΠΎ 2030 Π³ΠΎΠ΄ΠΈΠ½Π°, Π° Java SE 11 – Π΄ΠΎ 2032 Π³ΠΎΠ΄ΠΈΠ½Π°. Π‘Π»Π΅Π΄Π²Π°Ρ‰ΠΎΡ‚ΠΎ LTS ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‰Π΅ бъдС СсСнното ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Java SE 25.

Π‘Ρ€Π΅Π΄ новоститС Π² Java SE 24 са:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ СкспСримСнталСн Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° сборщика Π·Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Shenandoah, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ старитС ΠΈ Π½ΠΎΠ²ΠΎΡΡŠΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π·Π° повишаванС Π½Π° СфСктивността Π½Π° почистванСто Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ с ΠΊΡ€Π°Ρ‚ΡŠΠΊ ΠΆΠΈΠ²ΠΎΡ‚. Новият Ρ€Π΅ΠΆΠΈΠΌ осигурява ΠΏΠΎ-прСдсказуСма пропускна способност, устойчивост Π½Π° промСнящи сС натоварвания ΠΈ намаляванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Shenandoah Π΅ насочСн към намаляванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° спиранС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΠΎ-голям ΠΎΠ±Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ с ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Java прилоТСния.
  • Π’ HotSpot JVM Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈ заглавия Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π² 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ систСми Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ ΠΎΡ‚ 96 Π΄ΠΎ 64 Π±ΠΈΡ‚Π° (ΠΎΡ‚ 12 Π΄ΠΎ 8 Π±Π°ΠΉΡ‚Π°). НамаляванСто Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° заглавията позволява Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΡƒΠΏΠ° ΠΈ Π΄Π° сС повиши СфСктивността Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° кСша.
  • Π’ сборщикС мусора G1 Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π±Π°Ρ€ΠΈΠ΅Ρ€ΠΈ, слСдящи Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Ρ€ΠΈΠ΅Ρ€ΠΈΡ‚Π΅ са прСмСстСни Π½Π° ΠΏΠΎ-късСн Π΅Ρ‚Π°ΠΏ Π½Π° компилация Π² C2 JIT. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ тСстовС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚, Ρ‡Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ позволява Π΄Π° сС намалят Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° C2 с 10-20% Π² зависимост ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ API Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° криптографски Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (KDF, функция Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅), позволяващи ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° дълТина Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚Π°Π΅Π½ ΠΊΠ»ΡŽΡ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Ρ€ΠΎΠ»Π°) ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. KDF API Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° статус ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ (preview).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ (Ahead-of-Time) Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° класовС. Π’ΠΎΠ²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволява Π΄Π° сС ускори стартиранСто Π½Π° HotSpot JVM, прСдоставяйки класовСтС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π² Π²Π΅Ρ‡Π΅ Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€Π°Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ стартиранС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° всички класовС сС записва Π² кСш ΠΈ ΠΏΡ€ΠΈ послСдващи стартирания сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ускоряванС Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ API Class-File Π·Π° Π°Π½Π°Π»ΠΈΠ·, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Java класовС.

    ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue().startsWith("debug"))) { classBuilder.with(ce); } } });

  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ API Stream, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° опрСдСлянСто Π½Π° собствСни ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π² случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π·Π° ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° трансформация Π½Π° Π΄Π°Π½Π½ΠΈ. БобствСнитС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ Ρ‡Ρ€Π΅Π· Π½ΠΎΠ²Π°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π° опСрация Stream::gather(Gatherer), която ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, прилоТСнияйки зададСния ΠΎΡ‚ потрСбитСля ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ‚Π΅ стойности (Scoped Values), която позволява сподСлянСто Π½Π° нСизмСняСми Π΄Π°Π½Π½ΠΈ Π² ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ (стойноститС сС наслСдяват). Scoped Values сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚, Π·Π° Π΄Π° замСнят ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (thread-local variables) ΠΈ са ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ (хиляди ΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ). ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Scoped Values ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π΅, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ сС записват вСднъТ, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ промСняни ΠΈ остават Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ само ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°.
  • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° съвпадСниС с ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ (int, byte, char ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π±Π°Π·ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΎΠ±Π΅ΠΊΡ‚ΠΈ) във всички Ρ‚ΠΈΠΏΠΎΠ²Π΅ шаблони, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° 'instanceof' ΠΈ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ 'switch'. switch (x.getStatus()) { case 0 -> 'okay'; case 1 -> 'warning'; case 2 -> 'error'; case int i -> 'unknown status: ' + i; } if (i instanceof byte b) { … b … }
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΄Π΅Π²Π΅Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° API Vector, прСдоставящ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ изчислСния, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции Π½Π° процСсори x86_64 ΠΈ AArch64 ΠΈ позволяват Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° мноТСство стойности (SIMD). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, прСдоставяни ΠΎΡ‚ JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° HotSpot Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° вСкторизация Π½Π° скалярни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, новият API ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° явно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° вСкторизацията Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° синхронизация Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π±Π΅Π· тяхното прикрСпянС (pinning) към ΠΏΠΎΡ‚ΠΎΡ†ΠΈΡ‚Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π² синхронизирания ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΠ·Ρ€Π°Π· Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ сСга освобоТдават своя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ, позволявайки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° броя Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΈ подобрява мащабируСмостта Π½Π° прилоТСния, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ многопоточност.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС посочват ΠΈΠ·Ρ€Π°Π·ΠΈ Π² конструкторитС ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° super(…), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° конструктора Π½Π° родитСлския клас ΠΎΡ‚ конструктора Π½Π° наслСдСния клас, Π°ΠΊΠΎ Ρ‚Π΅Π·ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π΅ сС отнасят Π΄ΠΎ създадСния ΠΎΡ‚ конструктора ΠΎΠ±Π΅ΠΊΡ‚. class Outer { void hello() { System.out.println("Hello"); } class Inner { Inner() { hello(); super(); } } }
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° jlink Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° създаванС Π½Π° run-time ΠΎΠ±Ρ€Π°Π·ΠΈ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° JMOD Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° JDK с ΠΎΠΊΠΎΠ»ΠΎ 25%.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π²Ρ‚ΠΎΡ€ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ€Π°Π·Π° β€žimport module Mβ€œ Π·Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, изнасяни ΠΎΡ‚ посочСния ΠΌΠΎΠ΄ΡƒΠ». Π’ΠΎΠ²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ улСснява ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, позволявайки ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ класовС Π±Π΅Π· опрСдСлянС Π½Π° тяхното място Π² иСрархията Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅. НапримСр, ΡƒΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° β€žimport module java.baseβ€œ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° всичкитС 54 ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π»ΠΈΠ·Π°Ρ‚ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° java.base, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΅ трябвало Π΄Π° сС спомСнават ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€žimport java.io.*β€œ, β€žimport java.util.*β€œ ΠΈ Ρ‚.Π½.).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° нСявно обявСнитС класовС ΠΈ Π±Π΅Π·ΠΈΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ СкзСмпляри Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€žmainβ€œ, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС справитС Π±Π΅Π· обявлСния public/static, ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° масива с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с обявлСниСто Π½Π° класа Π½Π΅Ρ‰Π°. // бСшС public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } // сСга ΠΌΠΎΠΆΠ΅ void main() { System.out.println("Hello, World!"); }
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π·Π° тСстванС Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° API Π·Π° структурирана паралСлност (Structured Concurrency), ΠΊΠΎΠΉΡ‚ΠΎ опростява Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΈ прилоТСния, ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° няколко Π·Π°Π΄Π°Ρ‡ΠΈ, изпълнявани Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½Π΅Π½ Π±Π»ΠΎΠΊ.
  • Π’ API KeyPairGenerator, Signature ΠΈ KeyFactory Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ML-KEM (CRYSTALS-Kyber) ΠΈ ML-DSA (CRYSTALS-Dilithium), стандартизирани ΠΎΡ‚ Националния институт Π·Π° стандарти ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π° БАЩ (NIST) ΠΈ устойчиви Π½Π° Π°Ρ‚Π°ΠΊΠΈ с ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ. Π’Π΅Π·ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π° криптография, основани Π½Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚ тСорията Π½Π° Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈΡ‚Π΅, Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΈ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ.
  • Π’ ZGC сборщикС мусора Π΅Π΄Π΅ΠΌ ΠΎΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ отдСляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ «старых» ΠΈ Β«ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Ρ…Β» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Начиная с Java SE 23, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ZGC Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° API JNI (Java Native Interface) ΠΈ FFM (Foreign Function & Memory) с Ρ†Π΅Π» Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ Ρ‚Π΅Π·ΠΈ API, ΠΏΠΎΡ€Π°Π΄ΠΈ прСдстоящото Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° цСлостност, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ забранява взаимодСйствиС с Π½Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ външна ΠΏΠ°ΠΌΠ΅Ρ‚ (извън JVM), прСдоставСни ΠΎΡ‚ класа sun.misc.Unsafe. ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° сС Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° извън ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π° (off-heap) ΠΈ взаимодСйствиС с външСн ΠΊΠΎΠ΄ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° API VarHandle. Π’ ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° вСрсия ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° sun.misc.Unsafe бСшС обявСна Π·Π° остаряла.
  • Π”Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ Π΅ Security Manager, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚Π΄Π°Π²Π½Π° Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠ» актуалност ΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ слСд прСустановяванС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π½ΠΈΡ плъгин. Security Manager Π΅ обявСн Π·Π° остарял Π² Java 17. Π’ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ Ρ€Π΅Π»ΠΈΠ·ΠΈ Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ напълно Π΄Π° сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° Security Manager.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 32-Π±ΠΈΡ‚ΠΎΠ²Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Windows Π½Π° x86. ΠŸΠΎΡ€Ρ‚ΡŠΡ‚ Java Π·Π° 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈ систСми x86 Π΅ обявСн Π·Π° остарял ΠΈ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ (Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Linux Π½Π° 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈ систСми x86).

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ заслуТава Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прилоТСния с Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс JavaFX 24 ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° унивСрсалната Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина GraalVM, която ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° изпълнСниС Π½Π° прилоТСния Π½Π° JavaScript (Node.js), Python, Ruby, R, Π΅Π·ΠΈΡ†ΠΈ Π·Π° JVM (Java, Scala, Clojure, Kotlin) ΠΈ Π΅Π·ΠΈΡ†ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° LLVM Π±ΠΈΡ‚ΠΊΠΎΠ΄ (C, C++, Rust). ОсвСн ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° JDK 24, Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° GraalVM ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Java Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Π² машинСн ΠΊΠΎΠ΄, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ SkipFlow Π·Π° намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° компилация.

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

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