какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ

Java Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ платная? Π Π°Π·Π²Π΅Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ слухи (ΠΈΠ»ΠΈ Π½Π΅Ρ‚?)

какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π€ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°ΡΠ£ΠΆΠ΅ 2 дня ΠΊΠ°ΠΊ вступили Π² силу измСнСния Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Oracle Π½Π° распространСниС сборок Java SE. Π’ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²-слоупоков (я Ρ‚ΠΎΠΆΠ΅ Π² ΠΈΡ… числС) Π½Π°Ρ‡Π°Π»ΠΈ Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊΠΎΡˆΠΌΠ°Ρ€Π½Ρ‹Π΅ слухи.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ

Π’ сСрСдинС 2018 Π³ΠΎΠ΄Π° Oracle объявил, Ρ‡Ρ‚ΠΎ собираСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ. 16 апрСля 2019 Π³ΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вступило Π² силу. Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ послС этой Π΄Π°Ρ‚Ρ‹ сборки Java SE ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½ΡƒΠΆΠ΄ ΠΈ с Ρ†Π΅Π»ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для использования Π² коммСрчСских цСлях (Π² Ρ‚ΠΎΠΌ числС для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°) Π½Π°Π΄ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ подписку Ρƒ Oracle.

Π§Ρ‚ΠΎ-Π°-Π°?

Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ это сдСлали?

Как извСстно, Oracle Π½Π° самом Π΄Π΅Π»Π΅ собираСт ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΄Π²Π΅ вСрсии JDK: Oracle JDK (aka Java SE, располоТСна Π½Π° java.com) ΠΈ Open JDK (располоТСна Π½Π° openjdk.java.net).
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл всСй Π·Π°Ρ‚Π΅ΠΈ достаточно Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° этот слайд ΠΈΠ· ΠΈΡ… ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π€ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ

Для коммСрчСской сборки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ. Для бСсплатной – короткая. Π’.Π΅. Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡ΠΈ Π½Π° Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ OpenJDK Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Π³ΠΎΠ΄Π° Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ. Oracle JDK Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡ΠΈ Π΅Ρ‰Π΅ 5 Π»Π΅Ρ‚ послС выпуска. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½Π° платная.

Π§Ρ‚ΠΎ насчСт Java 8, 9, 10, 11.

Π­Ρ‚ΠΎ касаСтся всСх вСрсий.

Π­Ρ‚ΠΎ касаСтся JRE?

НигдС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ указываСтся лицСнзия Π½Π° JRE. БчитаСтся, Ρ‡Ρ‚ΠΎ Ρ€Π°Π· JRE являСтся подмноТСством JDK, Ρ‚ΠΎ ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Π΅ ограничСния Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅. Π’.Π΅. β€” Π΄Π°, это касаСтся JRE.

Π­Ρ‚ΠΎ ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС снСсти Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

НСт. ИзмСнСния ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹Ρ… выпусков (послС 16 апрСля). Для Java 8 SE ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ выпуском с ограничСниями стала Update 211. ВсС Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ Ρ€Π°Π½Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дальшС Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

А Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Π‘Ρ‚Π°Π²ΠΈΡ‚ΡŒ OpenJDK. Но сам OpenJDK ΠΎΡ‚ Oracle Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ½Π΄ΠΎΠ²ΠΎΠ³ΠΎ установщика (ΠΈ автоматичСского Π°ΠΏΠ΄Π΅ΠΉΡ‚Π°), Π½Π°Π΄ΠΎ Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ.

Если Π²Π°ΠΌ Π²Π°ΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ установщик, остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π½Π½ΠΈΠΌΠΈ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ ΠΎΡ‚ Oracle (Update 202). А Π°ΠΏΠ΄Π΅ΠΉΡ‚Ρ‹ всС Ρ€Π°Π²Π½ΠΎ придСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

UPD: Π’ коммСнтариях подсказали, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ бСсплатныС Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ с установщиком AdoptOpenJDK, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ comunity.
Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Liberica JDK, которая поддСрТиваСтся JetBrains.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство ΠΏΠΎ вСрсиям ΠΈ возмоТностям Java

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях ΠΈ функциях Java.

какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π€ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ
Java 8, Java 11, Java 13 β€” какая Ρ€Π°Π·Π½ΠΈΡ†Π°?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это руководство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Java, ΠΏΠΎΠ½ΡΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK ΠΈ Ρ‚.Π΄.), А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ возмоТностСй языка Java, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ вСрсии Java 8-13.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°
09 апрСля 2020 Π³. ΠœΠ°Ρ€ΠΊΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Руководства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ описаниС Java 14.
ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½ΠΎΠ²ΠΎΠΉ вСрсии Руководства прСдлагаСтся Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию.

Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ информация

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ практичСскиС вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρƒ людСй ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Java для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° сайт AdoptOpenJDK, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Java, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС Π΅Π΅. Π—Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому руководству ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях Java.

ΠšΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Java я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ 2019 Π³ΠΎΠ΄Π° Java 13 являСтся послСднСй Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ вСрсиСй Java, с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями, выходящими ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 6 мСсяцСв β€” Java 14 Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΠΌΠ°Ρ€Ρ‚ 2020 Π³ΠΎΠ΄Π°, Java 15 Π½Π° ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ 2020 Π³ΠΎΠ΄Π° ΠΈ Ρ‚.Π΄. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Ρ‹ выпуска Java Π±Ρ‹Π»ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Π΄ΠΎ 3-5 Π»Π΅Ρ‚!

какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π€ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ

Π‘ появлСниСм Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства Π½ΠΎΠ²Ρ‹Ρ… вСрсий Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС сцСнарии использования:

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС Π΅Ρ‰Π΅ застряли Π½Π° Java 8?

БущСствуСт мноТСство Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Java 8. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

Подводя ΠΈΡ‚ΠΎΠ³, Ρƒ вас Π΅ΡΡ‚ΡŒ сочСтаниС практичСских вопросов (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… инструмСнтов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²) ΠΈ политичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вСрсии Java Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ 1.X?

Π­Ρ‚ΠΎ просто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Java 8. Π‘ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ основанным Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выпускам с Java 9 Ρ‚Π°ΠΊΠΆΠ΅ измСнилась схСма имСнования, ΠΈ вСрсии Java большС Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прСфикса 1.x. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΎΠΌΠ΅Ρ€ вСрсии выглядит Ρ‚Π°ΠΊ:

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями Java?

Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ я ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ?

ΠŸΡ€ΠΈΠ΄Ρ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования с большими ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ выпусками, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python 2–3, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ это ΠΊ Java.

Java особСнная Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстима. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Java 5 ΠΈΠ»ΠΈ 8 Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java 8-13 β€” с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΌ сСйчас Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, скаТСм, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java 13, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто нСдоступны Π² Java 8 JVM.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ нСсколько Π²Π΅Ρ‰Π΅ΠΉ:

ΠšΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этих Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Π½ΠΎΠ²Ρ‹Ρ… вСрсий Java?

ВзглянитС Π½Π° Ρ€Π°Π·Π΄Π΅Π» «ВозмоТности Java 8-13Β» Π½ΠΈΠΆΠ΅.

Но, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: старыС, Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ выпуска (3-5 Π»Π΅Ρ‚, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Java 8) ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΈ мноТСство Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ выпускС.

ШСстимСсячный Ρ†ΠΈΠΊΠ» выпуска ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мСньшСС количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° выпуск, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java 9-13.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ JRE ΠΈ JDK?

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Java. Но Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«JavaΒ»?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ провСсти Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ JRE (Java Runtime Environment) ΠΈ JDK (Java Development Kit).

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ, Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JRE, Ссли вас интСрСсовали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java. JRE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Java (JVM) ΠΈ инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Β«javaΒ».

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Java Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ JDK. JDK Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² JRE, Π° Ρ‚Π°ΠΊΠΆΠ΅ компилятор javac ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ javadoc (Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Java) ΠΈ jdb (ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Java).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π³ΠΎΠ²ΠΎΡ€ΡŽ Π² ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?

Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Java 8 Π²Π΅Π±-сайт Oracle ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π» JRE ΠΈ JDK Π² качСствС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, хотя JDK Ρ‚Π°ΠΊΠΆΠ΅ всСгда Π²ΠΊΠ»ΡŽΡ‡Π°Π» JRE Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. Π’ Java 9 это Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ практичСски исчСзло, ΠΈ Π²Ρ‹ всСгда Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ JDK. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² JDK Ρ‚Π°ΠΊΠΆΠ΅ измСнилась, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ большС Π½Π΅ Π±Ρ‹Π»ΠΎ явной ΠΏΠ°ΠΏΠΊΠΈ JRE.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дистрибутивы (см. Π Π°Π·Π΄Π΅Π» «Дистрибутивы JavaΒ») ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ JRE, ΠΏΠΎΡ…ΠΎΠΆΠ΅, сущСствуСт тСндСнция ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JDK. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java ΠΈ JDK взаимозамСняСмо.

Как ΠΌΠ½Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java ΠΈΠ»ΠΈ JDK?

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, β€” это Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» jdk-<5-13>.zip. Π’Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€Π°Π²Π° администратора для этого.

Π’Π°Ρˆ распакованный Ρ„Π°ΠΉΠ» Java Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Магия происходит Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ / bin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Windows выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /bin Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ java ΠΈΠ· любого мСста.

Π’ случаС, Ссли Π²Π°ΠΌ интСрСсно, установщики с графичСским интСрфСйсом, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Oracle ΠΈΠ»ΠΈ AdoptOpenJDK, выполняСт распаковку ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH вмСсто вас.

Дистрибутивы Java

БущСствуСт мноТСство сайтов, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Java (Ρ‡ΠΈΡ‚Π°ΠΉ: JDK), ΠΈ нСясно, Β«ΠΊΡ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈ с ΠΊΠ°ΠΊΠΈΠΌ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ». Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎΠ»ΠΈΠ²Π°Π΅Ρ‚ свСт Π½Π° это.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ OpenJDK

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния исходного ΠΊΠΎΠ΄Π° Java (Ρ‡ΠΈΡ‚Π°ΠΉ: исходный ΠΊΠΎΠ΄ вашСго JRE / JDK) Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ β€” Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π΅ΡΡ‚ΡŒ нСсколько поставщиков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ фактичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ эти сборки, ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ (см. TCK) ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΈΡ….

И хотя поставщики Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚, скаТСм, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· класса String ΠΏΠ΅Ρ€Π΅Π΄ созданиСм Π½ΠΎΠ²ΠΎΠΉ сборки Java, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ брэндинг (Π²ay!) ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CLI), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Но Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ исходный ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² для всСх дистрибутивов Java.

OpenJDK (ΠΎΡ‚ Oracle) ΠΈ сборки OracleJDK

Один ΠΈΠ· поставщиков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Java ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, β€” это Oracle. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄Π²ΡƒΠΌ Ρ€Π°Π·Π½Ρ‹ΠΌ дистрибутивам Java, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ (Π΄ΠΎ Java 8) сущСствовали Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ исходныС различия ΠΌΠ΅ΠΆΠ΄Ρƒ сборками OpenJDK ΠΈ сборками OracleJDK, ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ OracleJDK Π±Ρ‹Π» Β«Π»ΡƒΡ‡ΡˆΠ΅Β». Но Π½Π° сСгодняшний дСнь ΠΎΠ±Π΅ вСрсии практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, с нСбольшими отличиями.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ всС сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ трСбуСтся платная коммСрчСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° (Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°) для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ вСрсии Java.

AdoptOpenJDK

Π’ 2017 Π³ΠΎΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ° участников, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ поставщиков Java User Group (Amazon, Microsoft, Pivotal, Red Hat ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) создала сообщСство ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ AdoptOpenJDK.

Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ бСсплатныС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ сборки OpenJDK с Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ / обновлСниями ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π²Π°ΠΌ Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Java: HotSpot ΠΈ OpenJ9.

Π― ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Π΅, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java.

Azul Zulu, Amazon Corretto, SAPMachine

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список сборок OpenJDK Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° сайтС OpenJDK Wikipedia. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Azul Zulu, Amazon Corretto, Π° Ρ‚Π°ΠΊΠΆΠ΅ https://sap.github.io/SapMachine/ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ говоря, различия сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ/ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ обслуТивания.

Но Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° сайтах Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ прСимущСствах ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дистрибутива.

РСкомСндация

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ с Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ с 2019 Π³ΠΎΠ΄Π°, Ссли Ρƒ вас Π½Π΅Ρ‚ особых Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» jdk.zip (.tar.gz/.msi/.pkg) ΠΏΠΎ адрСсу https://adoptopenjdk.net ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚, прСдоставлСнный вашим поставщиком ОБ.

ВозмоТности Java 8-13

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² самом Π½Π°Ρ‡Π°Π»Π΅ этого руководства: Π² сущности всС (Ссли Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡŒΡ‚Π΅ слишком Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка Java 8 Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Java 13. Π’ΠΎ ΠΆΠ΅ самоС касаСтся всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсий Java ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ всСх языковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Java 8 Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π±Π°Π·Ρƒ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Java, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ вСрсии (Java 9-13) Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π΄Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… этого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня.

Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ вСрсии ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ:

Java 8

Java 8 Π±Ρ‹Π»Π° массовым выпуском, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Π²Π΅Π±-сайтС Oracle. Π—Π΄Π΅ΡΡŒ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΄Π²Π° основных Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языка: лямбды ΠΈ Ρ‚.Π΄.

Π”ΠΎ Java 8 всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠ²ΠΎΠ³ΠΎ Runnable, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

Π‘ лямбдами Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ссылки Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для интСрфСйсов ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

Π’ Java 8 Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ извСстныС ΠΊΠ°ΠΊ Stream API. Быстрый ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π”ΠΎ Java 8, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с этим списком.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API Streams Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Java 9

Java 9 Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° довольно большой вСрсиСй, с нСсколькими дополнСниями:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для простого создания списков, Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈ ΠΊΠ°Ρ€Ρ‚.

Streams

ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² takeWhile, dropWhile ΠΈ iterate.

Optionals

Optionals ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ifPresentOrElse, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ private ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности языка

И ΠΏΠ°Ρ€Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try-with-resources ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ diamond ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

JShell

НаконСц, Π² Java появилась ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

HTTPClient

Java 9 принСс ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ HttpClient. Π”ΠΎ этого встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Http Π² Java Π±Ρ‹Π»Π° довольно Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ, ΠΈ Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Apache HttpClient ΠΈΠ»ΠΈ OkHttp (кстати, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ).

Π’ Java 9 Ρƒ Java появился собствСнный соврСмСнный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” хотя ΠΎΠ½ находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π΅Π²ΡŒΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях Java.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Jigsaw: ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Java ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Jar с нСсколькими выпусками

Java 9 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Jigsaw Module System, которая Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OSGI. ЦСлью Π΄Π°Π½Π½ΠΎΠ³ΠΎ руководства Π½Π΅ являСтся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Jigsaw β€” посмотритС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ссылки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС.

Java 10

Π’ Java 10 Π±Ρ‹Π»ΠΎ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сборка мусора ΠΈ Ρ‚.Π΄. Но СдинствСнноС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, вСроятно, Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, β€” это Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова var, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var

ЧувствуСтС сСбя ΠΊΠ°ΠΊ Π² Javascript-Π΅, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Однако Java всС Π΅Ρ‰Π΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ var примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (спасибо, dpash, Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ снова ΡƒΠΊΠ°Π·Π°Π» Π½Π° это).

Java 11

Java 11 Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° нСсколько мСньшСй вСрсиСй с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (Π½Π΅ всС пСрСчислСны здСсь):

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹

Начиная с Java 10, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Java Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции. Π¨Π°Π³ ΠΊ написанию сцСнариСв.

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (var) для лямбда-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ всС сказано:

HttpClient

HttpClient ΠΈΠ· Java 9, Π½ΠΎ ΡƒΠΆΠ΅ Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Π° Π½Π΅ ΠΏΡ€Π΅Π²ΡŒΡŽ вСрсии.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ вкусности

Flight Recorder (РСгистратор ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ²), сборщик мусора No-Op, Nashorn-Javascript-Engine объявлСн deprecated (ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ) ΠΈ Ρ‚.Π΄.

Java 12

Π’ Java 12 появилось нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ исправлСний, Π½ΠΎ здСсь стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Unicode 11 ΠΈ ΠΏΡ€Π΅Π²ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ выраТСния switch, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Java 13

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список возмоТностСй здСсь, Π½ΠΎ, ΠΏΠΎ сути, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Unicode 12.1, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π²ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ):

Switch Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Preview β€” ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия)

ВыраТСния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-ΡΡ‚ΠΈΠ»ΡŒ синтаксиса для своих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ошибками:

Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch выглядСли Ρ‚Π°ΠΊ:

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Java 13 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ строки (ΠΏΡ€Π΅Π²ΡŒΡŽ)

НаконСц-Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° Java:

Java 14 ΠΈ ΠΏΠΎΠ·ΠΆΠ΅

Π‘ΡƒΠ΄Π΅Ρ‚ рассмотрСно здСсь, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… выпустят. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² блиТайшСС врСмя!

Π’Ρ‹Π²ΠΎΠ΄

К настоящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ довольно Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…:

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь, исправлСния ΠΈ случайный Π²Π²ΠΎΠ΄ всСгда ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ! ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π²Π½ΠΈΠ·Ρƒ.

Бпасибо Π·Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅!

Π’Π°ΠΌ большС, ΠΎΡ‚ΠΊΡƒΠ΄Π° это появилось

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ появилась Π½Π° сайтС ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ сСрии руководств ΠΏΠΎ соврСмСнному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Java. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ большС руководств, посСтитС Π²Π΅Π±-сайт ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° рассылку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… руководствах: https://bit.ly/2K0Ao4F.

Благодарности

Π‘Ρ‚ΠΈΠ²Π΅Π½ ΠšΠΎΠ»Π΅Π±ΡƒΡ€Π½ написал Ρ„Π°Π½Ρ‚Π°ΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… доступных дистрибутивах Java. Бпасибо, Π‘Ρ‚ΠΈΠ²Π΅Π½!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π» Π² ΠΌΠΈΡ€Π΅ Java: Ρ‚Ρ€Π΅Π½Π΄Ρ‹ ΠΈ Ρ„Π°ΠΊΡ‚Ρ‹ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· самых популярных языков программирования

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: нСсмотря Π½Π° нСсколько Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ довольно-Ρ‚Π°ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ статистику ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ экосистСмы Java. НадССмся, Ρ‡Ρ‚ΠΎ эта статистика окаТСтся ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ читатСлям

ВСрсия этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² The New Stack.

БоврСмСнная индустрия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния нСвСроятно ΠΎΠ±ΡˆΠΈΡ€Π½Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ нСдостатка Π² Π²Ρ‹Π±ΠΎΡ€Π΅ языков программирования. Но Π΄Π°ΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСхнологичСского стСка, ΠΊΠ°ΠΊ экосистСма Java, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно слоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎ состоянии Ρ€Ρ‹Π½ΠΊΠ°. Java нСвСроятно ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΠΈ присутствуСт ΠΏΠΎΡ‡Ρ‚ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ индустрии ΠΈ экономичСском сСкторС, ΠΈ это, частично, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии ΠΌΠΈΡ€Π° Java.

Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нСльзя ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ состояниС этой сфСры.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь дСсятки ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Java (JVM) ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² New Relic. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΌΡ‹ Π°Π½ΠΎΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этих Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ прСдставлСниС ΠΎΠ± экосистСмС Java, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π΅ Π²ΠΈΠ΄ΠΈΠΌ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ…Π°ΠΊΠ΅Ρ€Π°ΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ Π² ΠΈΡ… Π°Ρ‚Π°ΠΊΠ°Ρ….

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ эти наблюдСния прСдоставят Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠΉ контСкстной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Π°Π΄ΡƒΡ‚ ΠΏΠΈΡ‰Ρƒ для Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ ΠΎ состоянии Java экосистСмы Π½Π° сСгодняшний дСнь. Π‘ этой ΠΌΡ‹ΡΠ»ΡŒΡŽ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΌΡ‹ рассмотрСли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопросы:

Java 8 всС Π΅Ρ‰Ρ‘ стандарт. Пока Π΅Ρ‰Ρ‘ стандарт

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ вопроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ интСрСсСн всСм Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ: β€œΠšΠ°ΠΊΠΈΠ΅ вСрсии Java большС всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации?”. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

ВСрсия Java% использования
140.00
130.32
120.17
1111.11
100.48
90.18
8 тСкущая42.02
8 ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‰Π°Ρ38.63
8 уязвимая3.83
72.54
pre-70.73
Non-LTS1.14

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠœΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ Java 8 Π½Π° Ρ‚Ρ€ΠΈ части:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Java 11 β€” LTS Ρ€Π΅Π»ΠΈΠ· β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ свою ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ€Ρ‹Π½ΠΎΠΊ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, всС Π΅Ρ‰Ρ‘ находится Π² сомнСниях, особСнно Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с Java 8 (Ρ‚ΠΎΠΆΠ΅ LTS). ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ нСдостаточный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ проникновСния Π½Π΅-LTS вСрсий β€” Java 7 всС Π΅Ρ‰Ρ‘ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΄Π²ΠΎΠ΅ больший ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ использования (2.54%) Π² сравнСнии с Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ, сдСланными послС Java 8, вмСстС взятыми (1.14%)

Рост Π½Π΅-Oracle Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ²

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ наблюдали послСдниС нСсколько Π»Π΅Ρ‚ β€” ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ΡΡ использованиС сторонних Java Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ², Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊ Oracle.

Π’Π΅Π½Π΄ΠΎΡ€% использования
Oracle74.78
AdoptOpenJDK7.06
IcedTea5.30
Azul2.96
IBM2.37
Amazon2.18
Unknown1.96
Pivotal1.40
SAP0.74
Sun0.58
Debian0.54
Other0.10

БСйчас Oracle Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 75% Ρ€Ρ‹Π½ΠΊΠ° Java. Π Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ сообщСством AdoptOpenJDK β€” Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ популярности Π²Π΅Π½Π΄ΠΎΡ€. Π”Π°Π½Π½Ρ‹Π΅ историчСских Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ основаны Π½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшСй Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅, Ρ‡Π΅ΠΌ наш основной Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…), ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ AdoptOpenJDK Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅ΠΌΠΏΠ°ΠΌΠΈ, мСсяц Π·Π° мСсяцСм.

НуТно особо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ срСди всСх Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π² NewRelic с установлСнным AdoptOpenJDK, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒ (33,19%) β€” это Java 11. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ использования Java 11 срСди ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ AdoptOpenJDK Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ срСди всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ интСрСсах ΠΏΠΎΠ»Π½ΠΎΠΉ открытости: NewRelic β€” спонсор ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° AdoptOpenJDK ΠΈ ΠΌΡ‹ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сборки мусора

Π‘Π±ΠΎΡ€ΠΊΠ° мусора, ΠΈΠ·-Π·Π° Ρ€ΠΎΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ β€” Ρ‚Π΅ΠΌΠ° бСсконСчного интСрСса Java сообщСства. По нашим Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сборки мусора Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠ»ΠΈ Ρ€Ρ‹Π½ΠΊΠ°:

GC% использования
Parallel57.77
G124.99
CMS17.20
ZGC0.04
Shenandoah= 16GB) β€” это всСго лишь 3.3% ΠΎΡ‚ всСй Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ появлСниС Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ β€œΡ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ кучи” β€” ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Xms ΠΈ Xmx, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ большой ΡΡŽΡ€ΠΏΡ€ΠΈΠ·. Наши Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ 33.48% всСх JVM всС Π΅Ρ‰Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ эту ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ.

Π’ самых Ρ€Π°Π½Π½ΠΈΡ… вСрсиях Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡƒΡ‡ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСимущСство ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ для соврСмСнных ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ это ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΊΠΎΠ½Ρ‚Ρ€-ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Если Π²Ρ‹ установитС эту ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ JVM Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ, Ρ‚Π΅ΠΌ самым ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ»ΠΈ частотС запросов.

НСмного случайных, Π½ΠΎ интСрСсных ΡˆΡ‚ΡƒΠΊ

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡ‚ Π²Π°ΠΌ ΠΏΡΡ‚ΡŒ Π·Π°Π±Π°Π²Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ ΠΈΠ· нашСй статистики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ:

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообраТСния

Наши Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹. Основной пСрСкос Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ пСрСдаСтся Π² NewRelic. Π­Ρ‚ΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС Java Ρ€Ρ‹Π½ΠΊΠ° ΠΈ ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ нСявныС пСрСкосы Π² Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΎΠ²Π°Π»ΠΈ. НапримСр, Java ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… вСртикалях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π΄Ρ€Π°Π²ΠΎΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ финансовый сСктор) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ позволяСт ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ вСрсии ΠΊ вСрсии воврСмя.

Однако, ΠΌΡ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² JVM ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, ΠΈ этот постоянно ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Ρ‹Π½ΠΎΠΊ Java прСдставляСт собой Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠœΡ‹ прСдставляСм эти числа для Java сообщСства с Π½Π°Π΄Π΅ΠΆΠ΄ΠΎΠΉ Π½Π° ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ Π² Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ обсуТдСниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΡƒΠ΄Π° двиТСтся Java Π² Ρ†Π΅Π»ΠΎΠΌ. Π­Ρ‚ΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π½Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ β€œΡƒ нас Π΅ΡΡ‚ΡŒ всС отвСты” ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·, сдСланный RedMonk’ом, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ для всСх.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° NewRelic Π΅ΡΡ‚ΡŒ доступ β€” Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ β€” ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΈΡ… ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ окруТСния. Если Π²Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ NewRelic (ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌ Π±Ρ‹Ρ‚ΡŒ) ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эти подсказки, ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ со своим ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌ Π»ΠΈΡ†ΠΎΠΌ Π² NewRelic, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ собствСнный экран ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для ΠΈΡ… отслСТивания.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° вашими систСмами Π½Π° Π²Π°ΡˆΠΈΡ… условиях, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство ΠΏΠΎ возмоТностям Java вСрсий 8-16

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это руководство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Java, ΠΏΠΎΠ½ΡΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK ΠΈ Ρ‚. Π΄.), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка Java, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ вСрсии 8-16.

Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию прСдлагаСтся обновлСнная вСрсия руководства ΠΎΡ‚ 05 апрСля 2021 Π³.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ информация

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ практичСскиС вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρƒ людСй, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Java для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

TL; DR МнС Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылка для скачивания, ΠΈ я знаю ΠΎΠ±ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ. ΠšΡƒΠ΄Π° ΠΌΠ½Π΅ слСдуСт ΠΈΠ΄Ρ‚ΠΈ?

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° сайт AdoptOpenJDK, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Java, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС Π΅Π΅. Π—Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому руководству, Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ вСрсиях Java.

TL;DR (Π°Π½Π³Π». too long; didn’t read β€” слишком Π΄Π»ΠΈΠ½Π½ΠΎ, Π½Π΅ Ρ‡ΠΈΡ‚Π°Π»)

Какая послСдняя вСрсия Java?

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΠΌΠ°Ρ€Ρ‚ 2021 Π³ΠΎΠ΄Π° Java 16 являСтся послСднСй Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ вСрсиСй Java.

ΠšΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Java ΠΌΠ½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ. Π€ΠΎΡ‚ΠΎ какая вСрсия java сСйчас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²Ρ‹Ρ… вСрсий, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сцСнарии использования:

УнаслСдованныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² компаниях часто Π·Π°ΡΡ‚Ρ€Π΅Π²Π°ΡŽΡ‚ Π½Π° Java 8 (см. Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС Π΅Ρ‰Π΅ Π·Π°ΡΡ‚Ρ€Π΅Π²Π°ΡŽΡ‚ Π½Π° Java 8?Β» Π½ΠΈΠΆΠ΅). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java 8.

Если Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ самыС послСдниС IDE, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ инструмСнты сборки ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π· ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java 11 (LTS) ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Java 16.

Π•ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Android, Π³Π΄Π΅ вСрсия Java Π² основном застряла Π½Π° Java 7 с с доступом ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Java 8. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° использованиС языка программирования Kotlin.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС Π΅Ρ‰Π΅ застряли Π½Π° Java 8?

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Java 8. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сборки (Maven, Gradle ΠΈ Ρ‚. Π΄.) ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ содСрТали ошибки с вСрсиями Java > 8 ΠΈ Π½ΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Π² обновлСниях. Π”Π°ΠΆΠ΅ сСгодня, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Java9+, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты сборки выводят прСдупрСТдСния Β«reflective accessΒ» ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто «каТутся Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈΒ», Π΄Π°ΠΆΠ΅ Ссли сборки Π² порядкС.

НСкоторыС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ использования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ LTS-вСрсий ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° поставщиков своих ОБ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставят ΠΈΠΌ эти сборки, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Подводя ΠΈΡ‚ΠΎΠ³: Ρƒ вас Π΅ΡΡ‚ΡŒ сочСтаниС практичСских вопросов (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… инструмСнтов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²) ΠΈ политичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вСрсии Java, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 8, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ 1.8?

Π­Ρ‚ΠΎ просто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Java 8. Π‘ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ основанным Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выпускам с Java 9 схСма имСнования Ρ‚Π°ΠΊΠΆΠ΅ измСнилась, ΠΈ вСрсии Java большС Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прСфикса 1.x. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΎΠΌΠ΅Ρ€ вСрсии выглядит Ρ‚Π°ΠΊ:

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями Java?

Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ я ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ?

ΠŸΡ€ΠΈΠ΄Ρ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования с большими ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ выпусками, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python 2–3, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΊ Java.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, скаТСм, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° полагаСтся Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java 14, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто нСдоступны Π² JVM Java 8.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ нСсколько Π²Π΅Ρ‰Π΅ΠΉ:

Π’Ρ‹ Π½Π΅ просто Β«ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅Β» ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Java, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 12.

Π‘ΠΊΠΎΡ€Π΅Π΅, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ основу для всСх языковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Java 8. Π­Ρ‚ΠΎ послуТит Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π±Π°Π·ΠΎΠΉ.

И Π·Π°Ρ‚Π΅ΠΌ, ΠΈΠ· этого руководства Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ появились Π² Java 9-16, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… всСгда, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этих Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Π½ΠΎΠ²Ρ‹Ρ… вСрсий Java?

ВзглянитС Π½Π° Ρ€Π°Π·Π΄Π΅Π» «ВозмоТности Java 8-16Β» Π½ΠΈΠΆΠ΅.

Но, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: старыС, Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ выпуска (3-5 Π»Π΅Ρ‚, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Java 8) ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΈ мноТСство Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ выпускС.

ШСстимСсячный Ρ†ΠΈΠΊΠ» выпуска ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мСньшСС количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° выпуск, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java 9-16.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ JRE ΠΈ JDK?

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Java. Но Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«JavaΒ»?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ провСсти Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ JRE (Java Runtime Environment) ΠΈ JDK (Java Development Kit).

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ, Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JRE, Ссли вас интСрСсовали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java. JRE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Java (JVM) ΠΈ инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Β«javaΒ».

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Java Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ JDK. JDK Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² JRE, Π° Ρ‚Π°ΠΊΠΆΠ΅ компилятор javac ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ javadoc (Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Java) ΠΈ jdb (ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Java).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π³ΠΎΠ²ΠΎΡ€ΡŽ Π² ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?

Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Java 8 Π²Π΅Π±-сайт Oracle ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π» JRE ΠΈ JDK Π² качСствС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, хотя JDK Ρ‚Π°ΠΊΠΆΠ΅ всСгда Π²ΠΊΠ»ΡŽΡ‡Π°Π» JRE Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. Π’ Java 9 это Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ практичСски исчСзло, ΠΈ Π²Ρ‹ всСгда Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ JDK. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² JDK Ρ‚Π°ΠΊΠΆΠ΅ измСнилась, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ большС Π½Π΅ Π±Ρ‹Π»ΠΎ явной ΠΏΠ°ΠΏΠΊΠΈ JRE.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дистрибутивы (см. Π Π°Π·Π΄Π΅Π» «Дистрибутивы JavaΒ») ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ JRE, ΠΏΠΎΡ…ΠΎΠΆΠ΅, сущСствуСт тСндСнция ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JDK. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java ΠΈ JDK взаимозамСняСмо.

Как ΠΌΠ½Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java ΠΈΠ»ΠΈ JDK?

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, β€” это Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» jdk-<5-16>.zip. Π’Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€Π°Π²Π° администратора для этого.

Π’Π°Ρˆ распакованный Ρ„Π°ΠΉΠ» Java Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Магия происходит Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /bin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Windows выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /bin Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ java ΠΈΠ· любого мСста.

Π’ случаС, Ссли Π²Π°ΠΌ интСрСсно, установщики с графичСским интСрфСйсом, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Oracle ΠΈΠ»ΠΈ AdoptOpenJDK, выполняСт распаковку ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH вмСсто вас.

Дистрибутивы Java

Π•ΡΡ‚ΡŒ мноТСство сайтов, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Java (Ρ‡ΠΈΡ‚Π°ΠΉ: JDK), ΠΈ нСясно, Β«ΠΊΡ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈ с ΠΊΠ°ΠΊΠΈΠΌΠΈ лицСнзиями». Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎΠ»ΡŒΠ΅Ρ‚ Π½Π° это Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ свСт.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ OpenJDK

Π§Ρ‚ΠΎ касаСтся исходного ΠΊΠΎΠ΄Π° Java (Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅: исходный ΠΊΠΎΠ΄ для вашСго JRE / JDK), сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, ΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΉ Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π΅ΡΡ‚ΡŒ нСсколько поставщиков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ фактичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ эти сборки, ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ (см. TCK) ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΈΡ….

И хотя поставщики Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚, скаТСм, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· класса String ΠΏΠ΅Ρ€Π΅Π΄ созданиСм Π½ΠΎΠ²ΠΎΠΉ сборки Java, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ брэндинг (Π²ay!) ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CLI), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Но Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ исходный ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² для всСх дистрибутивов Java.

Π‘Π±ΠΎΡ€ΠΊΠΈ OpenJDK (ΠΎΡ‚ Oracle) ΠΈ OracleJDK

Один ΠΈΠ· поставщиков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Java ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, β€” это Oracle. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄Π²ΡƒΠΌ Ρ€Π°Π·Π½Ρ‹ΠΌ дистрибутивам Java, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ.

Π‘Π±ΠΎΡ€ΠΊΠΈ OpenJDK ΠΎΡ‚ Oracle (!). Π­Ρ‚ΠΈ сборки бСсплатны ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈ, Π½ΠΎ Oracle Π½Π΅ выпустит обновлСния для Π±ΠΎΠ»Π΅Π΅ старых вСрсий, скаТСм, Java 15, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Java 16.

OracleJDK β€” это коммСрчСская сборка ΠΏΠΎΠ΄ Π±Ρ€Π΅Π½Π΄ΠΎΠΌ, выпускаСмая начиная с измСнСния Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π² 2019 Π³ΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатно Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Oracle, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС. ΠŸΡ€ΠΈ этом Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС обновлСния дистрибутива ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ, Ссли с вашСй JVM Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ (Π΄ΠΎ Java 8) сущСствовали Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ исходныС различия ΠΌΠ΅ΠΆΠ΄Ρƒ сборками OpenJDK ΠΈ сборками OracleJDK, ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ OracleJDK Π±Ρ‹Π» Β«Π»ΡƒΡ‡ΡˆΠ΅Β». Но Π½Π° сСгодняшний дСнь ΠΎΠ±Π΅ вСрсии практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, с нСбольшими отличиями.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ всС сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, трСбуСтся Π»ΠΈ Π²Π°ΠΌ коммСрчСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° (Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°) для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ вСрсии Java.

AdoptOpenJDK

Π’ 2017 Π³ΠΎΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ° участников, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ поставщиков Java User Group (Amazon, Microsoft, Pivotal, Red Hat ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) создала сообщСство ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ AdoptOpenJDK.

Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ бСсплатныС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ сборки OpenJDK с Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ / обновлСниями ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π²Π°ΠΌ Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Java: HotSpot ΠΈ OpenJ9.

Π― ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Π΅, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java.

Azul Zulu, Amazon Corretto, SAPMachine

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список сборок OpenJDK Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° сайтС OpenJDK Wikipedia. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Azul Zulu, Amazon Corretto, Π° Ρ‚Π°ΠΊΠΆΠ΅ SapMachine ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ говоря, различия сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ/ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ обслуТивания.

Но Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° сайтах Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ прСимущСствах ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дистрибутива.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ дистрибутива OpenJDK

Π Π°Ρ„Π°ΡΠ»ΡŒ Π’ΠΈΠ½Ρ‚Π΅Ρ€Ρ…Π°Π»ΡŒΡ‚Π΅Ρ€ (Rafael Winterhalter) собрал большой список всСх доступных сборок OpenJDK, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡ… описания: ОБ, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΎΠΊΠ½Π° лицСнзирования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ обслуТивания.

РСкомСндация

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ с Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ с 2020 Π³ΠΎΠ΄Π°, Ссли Ρƒ вас Π½Π΅Ρ‚ особых Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» jdk.zip (.tar.gz/.msi/.pkg) ΠΏΠΎ адрСсу https://adoptopenjdk.net ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚, прСдоставлСнный вашим поставщиком ОБ.

ВозмоТности Java 8-16

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² самом Π½Π°Ρ‡Π°Π»Π΅ этого руководства: Π² сущности всС (Ссли Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡŒΡ‚Π΅ слишком Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка Java 8 Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Java 14. Π’ΠΎ ΠΆΠ΅ самоС касаСтся всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсий Java ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ всСх языковых возмоТностСй Java 8 создаСт Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π±Π°Π·Ρƒ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Java, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ вСрсии (Java 9-16) Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π΄Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… этого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня.

Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ вСрсии ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ:

Java 8 Π±Ρ‹Π»Π° массовым выпуском, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Π²Π΅Π±-сайтС Oracle. Π—Π΄Π΅ΡΡŒ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΄Π²Π° основных Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языка: лямбды ΠΈ Ρ‚. Π΄.

Π”ΠΎ Java 8 всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠ²ΠΎΠ³ΠΎ Runnable, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

Π‘ лямбдами Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ссылки Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для интСрфСйсов ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

Π’ Java 8 Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ извСстныС ΠΊΠ°ΠΊ Stream API. Π–ΠΈΠ²ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π”ΠΎ Java 8, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с этим списком.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API Streams Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ большС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π° Java 8

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этого руководства я ΠΌΠΎΠ³Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Stream, Lambda ΠΈΠ»ΠΈ Optional ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Java 8.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ упраТнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΠΈΠΌ курсом ΠΏΠΎ основным функциям Java 8.

Java 9 Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° довольно большой вСрсиСй, с нСсколькими дополнСниями:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для простого создания списков, Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈ ΠΊΠ°Ρ€Ρ‚.

Streams

ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² takeWhile, dropWhile ΠΈ iterate.

Optionals

Optionals ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ifPresentOrElse, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ private ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности языка

И ΠΏΠ°Ρ€Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try-with-resources ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ diamond ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

JShell

НаконСц, Π² Java появилась ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

HTTPClient

Π’ Java 9 появилась пСрвая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия Π½ΠΎΠ²ΠΎΠ³ΠΎ HttpClient. Π”ΠΎ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Http Π² Java Π±Ρ‹Π»Π° довольно Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ, ΠΈ Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ использованию сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Apache HttpClient ΠΈΠ»ΠΈ OkHttp (кстати, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ!).

Project Jigsaw: ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Java ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Jar с нСсколькими выпусками

Π’ Java 9 появилась систСма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Jigsaw, которая Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OSGI. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Jigsaw Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ руководства β€” посмотритС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ссылки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ большС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Java 9

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это всСго лишь ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Java 9, ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ объяснСния ΠΈ упраТнСния, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с курсом основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Java 9.

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var

ЧувствуСтС сСбя ΠΊΠ°ΠΊ Π² Javascript-Π΅, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Однако Java всС Π΅Ρ‰Π΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ var примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (спасибо, dpash, Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ снова ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π° это).

Java 11 Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° нСсколько мСньшСй вСрсиСй с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Ρƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (здСсь пСрСчислСны Π½Π΅ всС):

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹

Начиная с Java 10, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Java Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΡ… компиляции. Π¨Π°Π³ ΠΊ написанию сцСнариСв.

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (var) для лямбда-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ сказано всС:

HttpClient

HttpClient ΠΈΠ· Java 9 Π² Π΅Π³ΠΎ послСднСй, Π½Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ вкусности

Flight Recorder (РСгистратор ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ²), сборщик мусора No-Op, Nashorn-Javascript-Engine объявлСн deprecated (ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ) ΠΈ Ρ‚.Π΄.

Π’ Java 12 появилось нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ исправлСний, Π½ΠΎ здСсь стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Unicode 11 ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Π½ΠΎΠ²ΠΎΠ³ΠΎ выраТСния switch, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список возмоТностСй здСсь, Π½ΠΎ, ΠΏΠΎ сути, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Unicode 12.1, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π²ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ):

Switch Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Preview β€” ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия)

Switch выраТСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-ΡΡ‚ΠΈΠ»ΡŒ синтаксиса для своих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ошибками:

Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch выглядСли Ρ‚Π°ΠΊ:

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Java 13 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ строки (ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия)

НаконСц-Ρ‚ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° Java:

Java 14 ΠΈ Π΄Π°Π»Π΅Π΅

Switch выраТСния (стандартноС)

Switch выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π²ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² вСрсиях 12 ΠΈ 13, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стандартизированы.

Π’ настоящСС врСмя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ классы Records (записСй), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ написания большого количСства шаблонов с использованиСм Java.

ВзглянитС Π½Π° этот класс Π΄ΠΎ Java 14, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, (ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ) ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния / установки, equals / hashcode, toString.

Π‘ записями Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусках.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NullPointerExceptions

НаконСц, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NullPointerExceptions ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚, какая ΠΈΠΌΠ΅Π½Π½ΠΎ пСрСмСнная ΠΈΠΌΠ΅Π»Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL.

БопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ для InstanceOf (ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия)

РаньшС Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ cast Π²Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ instanceof ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, эффСктивно сбросив гипс.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ (ΠΈΠ½ΠΊΡƒΠ±Π°Ρ‚ΠΎΡ€)

БущСствуСт инструмСнт jpackage (ΠΈΠ½ΠΊΡƒΠ±Π°Ρ‚ΠΎΡ€), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ вашС Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости.

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ мусора

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Concurrent Mark Sweep (CMS) Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½, ΠΈ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ сборщик мусора Z.

Java 15

ВСкстовыС Π±Π»ΠΎΠΊΠΈ / многострочныС строки

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² качСствС ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Java 13 (см. Π’Ρ‹ΡˆΠ΅), многострочныС тСксты Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ подклассы Π²Π°ΡˆΠΈΡ… классов, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ такая sealed функция.

Записи ΠΈ сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Records ΠΈ Pattern Matching ΠΈΠ· Java 14 (см. Π’Ρ‹ΡˆΠ΅) всС Π΅Ρ‰Π΅ находятся Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.

Π”Π²ΠΈΠΆΠΎΠΊ JavaScript Rhinoceros

ПослС устарСвания Π² Java 11 ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Nashorn Javascript Engine Π±Ρ‹Π» ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ Π² JDK 15.

ZGC: Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½

Z Garbage Collector Π½Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ большС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ Π³ΠΎΡ‚ΠΎΠ² ΠΊ использованию Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

Java 16

ΠšΠ°Π½Π°Π»Ρ‹ сокСтов Π΄ΠΎΠΌΠ΅Π½Π° Unix

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ сокСтам Π΄ΠΎΠΌΠ΅Π½Π° Unix (Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ macOS ΠΈ Windows (10+).

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° JNI (Java Native Interface), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ привязку ΠΊ собствСнным Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ (ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ C).

Записи ΠΈ сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ

Π—Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ классы

Π—Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ классы (начиная с Java 15, см. Π’Ρ‹ΡˆΠ΅) всС Π΅Ρ‰Π΅ находятся Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии.

Java 17 ΠΈ Π½ΠΎΠ²Π΅Π΅

Π‘ΡƒΠ΄Π΅Ρ‚ рассмотрСно здСсь, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² блиТайшСС врСмя.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

К настоящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ довольно Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…:

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java, ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π³Π΄Π΅ Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ (подсказка: AdoptOpenJDK).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дистрибутив Java, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π² Ρ‡Π΅ΠΌ различия.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ вСрсиями Java.

ΠžΡ‚Π·Ρ‹Π²Ρ‹, исправлСния ΠΈ ваш Π²ΠΊΠ»Π°Π΄ всСгда ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ! ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π²Π½ΠΈΠ·Ρƒ.

Бпасибо Π·Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅!

Благодарности

Π‘Ρ‚ΠΈΠ²Π΅Π½ ΠšΠΎΠ»Π΅Π±ΠΎΡ€Π½, написал Ρ„Π°Π½Ρ‚Π°ΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… доступных дистрибутивах Java.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *