ΠΊΠ°ΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ 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).
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΠΌΡΡΠ» Π²ΡΠ΅ΠΉ Π·Π°ΡΠ΅ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΡΠΎΡ ΡΠ»Π°ΠΉΠ΄ ΠΈΠ· ΠΈΡ
ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ. ΠΠ»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ β ΠΊΠΎΡΠΎΡΠΊΠ°Ρ. Π’.Π΅. ΡΡΠΎΠ±Ρ Π½Π°ΠΊΠ°ΡΠΈΡΡ ΠΏΠ°ΡΡΠΈ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ 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 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 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 | % ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
---|---|
14 | 0.00 |
13 | 0.32 |
12 | 0.17 |
11 | 11.11 |
10 | 0.48 |
9 | 0.18 |
8 ΡΠ΅ΠΊΡΡΠ°Ρ | 42.02 |
8 ΠΎΡΡΡΠ°ΡΡΠ°Ρ | 38.63 |
8 ΡΡΠ·Π²ΠΈΠΌΠ°Ρ | 3.83 |
7 | 2.54 |
pre-7 | 0.73 |
Non-LTS | 1.14 |
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎ Java 8 Π½Π° ΡΡΠΈ ΡΠ°ΡΡΠΈ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Java 11 β LTS ΡΠ΅Π»ΠΈΠ· β ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΡΡΠ½ΠΎΠΊ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π²ΡΠ΅ Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌΠ½Π΅Π½ΠΈΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ Java 8 (ΡΠΎΠΆΠ΅ LTS). ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π½Π΅-LTS Π²Π΅ΡΡΠΈΠΉ β Java 7 Π²ΡΠ΅ Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΄Π²ΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (2.54%) Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΠ΅Π»ΠΈΠ·Π°ΠΌΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Java 8, Π²ΠΌΠ΅ΡΡΠ΅ Π²Π·ΡΡΡΠΌΠΈ (1.14%)
Π ΠΎΡΡ Π½Π΅-Oracle Π²Π΅Π½Π΄ΠΎΡΠΎΠ²
ΠΡΡ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ β ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Java Π²Π΅Π½Π΄ΠΎΡΠΎΠ², Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΊ Oracle.
ΠΠ΅Π½Π΄ΠΎΡ | % ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
---|---|
Oracle | 74.78 |
AdoptOpenJDK | 7.06 |
IcedTea | 5.30 |
Azul | 2.96 |
IBM | 2.37 |
Amazon | 2.18 |
Unknown | 1.96 |
Pivotal | 1.40 |
SAP | 0.74 |
Sun | 0.58 |
Debian | 0.54 |
Other | 0.10 |
Π‘Π΅ΠΉΡΠ°Ρ Oracle Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 75% ΡΡΠ½ΠΊΠ° Java. Π Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ AdoptOpenJDK β Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π²Π΅Π½Π΄ΠΎΡ. ΠΠ°Π½Π½ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π΄ΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π΅ΡΡ Π½Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅, ΡΠ΅ΠΌ Π½Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ), ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ AdoptOpenJDK Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠΏΠ°ΠΌΠΈ, ΠΌΠ΅ΡΡΡ Π·Π° ΠΌΠ΅ΡΡΡΠ΅ΠΌ.
ΠΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π² NewRelic Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ AdoptOpenJDK, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄Π½Π° ΡΡΠ΅ΡΡ (33,19%) β ΡΡΠΎ Java 11. ΠΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Java 11 ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ AdoptOpenJDK Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ: NewRelic β ΡΠΏΠΎΠ½ΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° AdoptOpenJDK ΠΈ ΠΌΡ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π² ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°
Π‘Π±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΠΈΠ·-Π·Π° ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½Π° ΠΈΠ³ΡΠ°Π΅Ρ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΡΡ β ΡΠ΅ΠΌΠ° Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° Java ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. ΠΠΎ Π½Π°ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΎΠ»ΠΈ ΡΡΠ½ΠΊΠ°:
GC | % ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
---|---|
Parallel | 57.77 |
G1 | 24.99 |
CMS | 17.20 |
ZGC | 0.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 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.