Π‘Π»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Oracle ΠΏΡΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Java SE 18 (Java Platform, Standard Edition 18), ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ OpenJDK ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π‘ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Java SE 18 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Java - ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Java ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΠΎΠ΄ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ. ΠΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ Π½Π° Java SE 18 (JDK, JRE ΠΈ Server JRE) ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Linux (x86_64, AArch64), Windows (x86_64) ΠΈ macOS (x86_64, AArch64). Π Π°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenJDK, ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Java 18 Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· GPLv2 Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° GNU ClassPath, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ.
Java SE 18 Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° Π²Π΅ΡΡΠΈΡ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΊΠ°ΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΡΠ½Π°ΡΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΠ»ΠΎΠ½ΡΡ Π·Π° Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° (LTS) ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Java SE 17, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎ 2029 Π³. Π‘ΠΏΠΎΠΌΠ½Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Java 10, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΠΊΡΠΌ Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΠΏΠΎ-ΠΊΡΠ°ΡΡΠΊ ΡΠΈΠΊΡΠ» Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ. Π‘Π΅Π³Π° ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΠΎΠ½, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π²Π΅ΡΠ΅ Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΡΠ΅ ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Ρ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Ρ Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Java 18 Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π΅ UTF-8. Java API, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π½Π°ΡΠΈ, Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ UTF-8 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° Π»ΠΎΠΊΠ°Π». ΠΠ° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΡΡΠ°ΡΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π»ΠΎΠΊΠ°Π», ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° "-Dfile.encoding=COMPAT".
- ΠΠ°ΠΊΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° com.sun.net.httpserver, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° jwebserver ΠΈ API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΡ http ΡΡΡΠ²ΡΡ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ (CGI ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΡΠ΅ΡΠ²Π»Π΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ). ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈΡΡ HTTP ΡΡΡΠ²ΡΡ Π½Π΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠ°Π½Π΅, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
- JavaDoc ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π³Π° "@snippet" Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° API, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅, ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° IDE.
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° java.lang.reflect API (Core Reflection), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅, Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°. Π‘Π°ΠΌΠΈΡΡ API Π½Π° java.lang.reflect ΠΎΡΡΠ°Π²Π° Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π° java.lang.invoke, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ Π½Π° Π±Π°ΠΉΡ ΠΊΠΎΠ΄. ΠΡΠΎΠΌΡΠ½Π°ΡΠ° Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° java.lang.reflect ΠΈ java.lang.invoke ΠΈ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΈΠΌ.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ ΡΡΠ΅ΡΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈΡ API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ x86_64 ΠΈ AArch64 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (SIMD). ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² HotSpot JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π»Π°ΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½ΠΎΠ²ΠΈΡΡ API ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ SPI ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° ΡΡΠ»ΡΠ³ΠΈ) Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ ΠΎΡΡΠΎΠ²Π΅ ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠ΅Π·ΠΎΠ»Π²Π΅ΡΠΈ Π² java.net.InetAddress, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ Π΅ Π²ΡΠΎΡΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° API Π·Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ°ΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ Ρ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡΠ½ ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Java. ΠΠΎΠ²ΠΈΡΡ API Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ Π½Π΅-JVM ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅-JVM-ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ JNI.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠΎΡΠ° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π² ΠΈΠ·ΡΠ°Π·ΠΈ Π·Π° βΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅β, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π² Π΅ΡΠΈΠΊΠ΅ΡΠΈ βcaseβ, Π° Π½Π΅ ΡΠΎΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠΈ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠΎΠΌΠ°Π²ΠΈ Π²Π΅ΡΠΈΠ³ΠΈ ΠΎΡ ΠΈΠ·ΡΠ°Π·ΠΈ βΠ°ΠΊΠΎ...ΠΈΠ½Π°ΡΠ΅β. ΠΠ±Π΅ΠΊΡ o = 123L; Π€ΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ Π½ΠΈΠ· = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); ΡΠ»ΡΡΠ°ΠΉ String s -> String.format("ΠΠΈΠ· %s", s); ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ -> o.toString(); };
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ°ΡΠΎ Object.finalize(), Enum.finalize(), Runtime.runFinalisation() ΠΈ System.runFinalisation() ΡΠ° ΠΎΡΡ Π²ΡΡΠ»Π΅Π½ΠΈ ΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΈ Π² Π±ΡΠ΄Π΅ΡΠ° Π²Π΅ΡΡΠΈΡ.
- ZGC (Z Garbage Collector), SerialGC ΠΈ ParallelGC ΡΡΠ±ΠΈΡΠ°ΡΠΈΡΠ΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru