ΠΠ°ΠΊΠΎΠ½ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠΈ ΡΠ°Π·Π²ΠΎΡΠ°, ΠΡΠ°ΡΠ»Π΅
ΠΠ°Π²Π° Π‘Π 15 ΡΠ΅ ΠΊΠ»Π°ΡΠΈΡΠΈΠΊΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΎ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ ΠΈΠ·Π΄Π°ΡΠ΅ Π·Π° ΠΏΠΎΠ΄ΡΡΠΊΡ ΠΈ Π½Π°ΡΡΠ°Π²ΠΈΡΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π΄ΠΎ ΡΠ»Π΅Π΄Π΅ΡΠ΅Π³ ΠΈΠ·Π΄Π°ΡΠ°. ΠΡΠ°Π½Π° Π·Π° Π΄ΡΠ³ΠΎΡΠΎΡΠ½Ρ ΠΏΠΎΠ΄ΡΡΠΊΡ (ΠΠ’Π‘) Π±ΠΈ ΡΡΠ΅Π±Π°Π»ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΠ°Π²Π° Π‘Π 11, ΠΊΠΎΡΠ° ΡΠ΅ Π½Π°ΡΡΠ°Π²ΠΈΡΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π΄ΠΎ 2026. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½Π° ΠΠ’Π‘ Π³ΡΠ°Π½Π° ΠΠ°Π²Π° 8 ΡΠ΅ Π±ΠΈΡΠΈ ΠΏΠΎΠ΄ΡΠΆΠ°Π½Π° Π΄ΠΎ Π΄Π΅ΡΠ΅ΠΌΠ±ΡΠ° 2020. Π‘Π»Π΅Π΄Π΅ΡΠ΅ ΠΠ’Π‘ ΠΈΠ·Π΄Π°ΡΠ΅ ΡΠ΅ Π·Π°ΠΊΠ°Π·Π°Π½ΠΎ Π·Π° ΡΠ΅ΠΏΡΠ΅ΠΌΠ±Π°Ρ 2021. ΠΠΎΠ΄ΡΠ΅ΡΠΈΠΌΠΎ, ΠΏΠΎΡΠ΅Π²ΡΠΈ ΠΎΠ΄ ΠΈΠ·Π΄Π°Π²Π°ΡΠ° ΠΠ°Π²Π΅ 10, ΠΏΡΠΎΡΠ΅ΠΊΠ°Ρ ΡΠ΅ ΠΏΡΠ΅ΡΠ°ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅Ρ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΡΠΈ ΠΊΡΠ°ΡΠΈ ΡΠΈΠΊΠ»ΡΡ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΠΈΠ·Π΄Π°ΡΠ°. ΠΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅ ΡΠ°Π΄Π° ΡΠ°Π·Π²ΠΈΡΠ΅Π½Π° Ρ ΡΠ΅Π΄Π½ΠΎΡ ΡΡΠ°Π»Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°Π½ΠΎΡ Π³Π»Π°Π²Π½ΠΎΡ Π³ΡΠ°Π½ΠΈ, ΠΊΠΎΡΠ° ΡΠΊΡΡΡΡΡΠ΅ Π³ΠΎΡΠΎΠ²Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ ΠΈ ΠΈΠ· ΠΊΠΎΡΠ΅ ΡΠ΅ Π³ΡΠ°Π½Π΅ Π³ΡΠ°Π½Π°ΡΡ ΡΠ²Π°ΠΊΠΈΡ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠΈ ΠΊΠ°ΠΊΠΎ Π±ΠΈ ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π»Π° Π½ΠΎΠ²Π° ΠΈΠ·Π΄Π°ΡΠ°.
ΠΠ΄
-
Π£Π³ΡΠ°ΡΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ EdDSA (Edwards-Curve Digital Signature AlgorithmΠ Π€Π¦ ΠΠ‘ΠΠ£ΠΠΠ‘ ). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ EdDSA Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΎΡ Π°ΡΠ°ΠΊ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ (ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ) ΠΈ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ECDSA, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, ΠΏΡΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΡΠΎΠ²Π½Π΅ Π·Π°ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, EdDSA ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ ΡΠΎ 126-Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ECDSA Ρ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ secp256r1 ΠΈ 128-Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. -
ΠΠΎΠ΄Π°ΡΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΡ (Β«sealedΒ») ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ²Π½ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.package com.example.geometry;
public sealed class Shape
permits com.example.polar.Circle,
com.example.quad.Rectangle,
com.example.quad.simple.Square {β¦} -
ΠΠΎΠ΄Π°ΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ»ΡΡΠ΅Π²ΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ , Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΡ ΠΊΠ»Π°ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΈΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ, ΡΠ΅ΡΠ΅Π·ΠΎΠ΄ΡΠ°Π· . ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ Π»ΠΈΡΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΊΡΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ API sun.misc.Unsafe::defineAnonymousClass, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌΠ΅ΡΠ΅Π½ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. - Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ·Π½Π°Π½ Π³ΠΎΡΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ZGC (Z Garbage Collector). ZGC ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΠ°ΡΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ·-Π·Π° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° (Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ZGC Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 10 ΠΌΡ.) ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ ΠΊΡΡΠ°ΠΌΠΈ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠ΅Π½ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ·Π½Π°Π½ Π³ΠΎΡΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°Π‘Ρ Π΅Π½Π°Π½Π΄ΠΎΠ°Ρ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ (Low-Pause-Time Garbage Collector). Shenandoah ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΡΠΎΠΊΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π·Π° ΡΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π°Π·ΠΌΠ΅Ρ Π²Π½ΠΎΡΠΈΠΌΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠΈ, Ρ.Π΅. Π΄Π»Ρ ΠΊΡΡ Π² 200 MB ΠΈ 200 GB Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ (Π½Π΅ ΠΈΠ·Π»Π°Π·ΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ 50 ΠΌΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² 10 ΠΌΡ); - Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π²Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ β Π½ΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΌΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΈΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² Π±Π»ΠΎΠΊΠ΅. ΠΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΌΡ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ΄Π°
Π‘ΡΡΠΈΠ½Π³ Ρ ΡΠΌΠ» = "" +
"\Π½\Ρ" + "" +
"\Π½\Ρ\Ρ" + "\"ΠΠ°Π²Π° 1 ΡΠ΅ ΠΎΠ²Π΄Π΅!\"" +
"\Π½\Ρ" + "" +
"\Π½" + "";ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠΈ:
Π‘ΡΡΠΈΠ½Π³ Ρ ΡΠΌΠ» = """
Β»ΠΠ°Π²Π° 1\
ΡΠ΅ ΠΎΠ²Π΄Π΅!β
"""; -
ΠΡΠ΅ΡΠ°ΡΠ΅Π½ΠΎ API Legacy DatagramSocket. Π‘ΡΠ°ΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ java.net.DatagramSocket ΠΈ java.net.MulticastSocket, Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Π Π°Π·Π±ΠΎΡ . ΠΠ° ΡΠ»ΡΡΠ°ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠ°ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΠ΄Π°Π»Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠΈΠΈ jdk.net.usePlainDatagramSocketImpl. - ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π²ΡΠΎΡΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΏΠΎΠΊΠ»Π°ΠΏΠ°ΡΠ΅ ΠΎΠ±Π»ΠΈΠΊΠ° Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ βΠΈΠ½ΡΡΠ°Π½ΡΠ΅ΠΎΡβ, ΠΊΠΎΡΠΈ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π΄Π° ΠΎΠ΄ΠΌΠ°Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½Ρ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²Ρ Π·Π° ΠΏΡΠΈΡΡΡΠΏ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎΡ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄ΠΌΠ°Ρ Π½Π°ΠΏΠΈΡΠ°ΡΠΈ βΠΈΡ (ΠΎΠ±Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ΠΎΡ Π‘ΡΡΠΈΠ½Π³ Ρ && Ρ.Π»Π΅Π½Π³ΡΡ () > 5) {.. Ρ.ΡΠΎΠ½ΡΠ°ΠΈΠ½Ρ(..) ..}β Π±Π΅Π· Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎΠ³ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ° βΠ‘ΡΡΠΈΠ½Π³ Ρ = (Π‘ΡΡΠΈΠ½Π³) ΠΎΠ±Ρβ.ΠΠΈΠ»ΠΎ ΡΠ΅:
ΠΈΡ (ΠΎΠ±Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ΠΎΡ ΠΡΠΎΡΠΏ) {
ΠΡΡΠΏΠ½Π° Π³ΡΡΠΏΠ° = (ΠΡΡΠΏΠ°)ΠΎΠ±Ρ;
Π²Π°Ρ Π΅Π½ΡΡΠΈΠ΅Ρ = Π³ΡΠΎΡΠΏ.Π³Π΅ΡΠΠ½ΡΡΠΈΠ΅Ρ();
}Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ΅ βΠΡΠΎΡΠΏ Π³ΡΠΎΡΠΏ = (ΠΡΠΎΡΠΏ) ΠΎΠ±Ρβ:
ΠΈΡ (ΠΎΠ±Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ΠΎΡ ΠΡΠΎΡΠΏ Π³ΡΠΎΡΠΏ) {
Π²Π°Ρ Π΅Π½ΡΡΠΈΠ΅Ρ = Π³ΡΠΎΡΠΏ.Π³Π΅ΡΠΠ½ΡΡΠΈΠ΅Ρ();
} -
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΠΎΡΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Β«Π·Π°ΠΏΠΈΡ β, ΠΊΠΎΡΠΈ ΠΎΠ±Π΅Π·Π±Π΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ°Π½ ΠΎΠ±Π»ΠΈΠΊ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΊΠ»Π°ΡΠ°, ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π°ΡΡΡΠΈ Π²Π°ΠΌ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½ΠΈΡΠΊΠΎΠ³ Π½ΠΈΠ²ΠΎΠ° ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ Π΅ΠΊΡΠ°Π»Ρ(), Ρ Π°ΡΡ Π¦ΠΎΠ΄Π΅() ΠΈ ΡΠΎΠ‘ΡΡΠΈΠ½Π³() Ρ ΡΠ»ΡΡΠ°ΡΠ΅Π²ΠΈΠΌΠ° ΠΊΠ°Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΈ ΡΡΠ²Π°ΡΡ ΡΠ°ΠΌΠΎ Ρ ΠΏΠΎΡΠΈΠΌΠ° ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ½Π°ΡΠ°ΡΠ΅ Π½Π΅ ΠΌΠ΅ΡΠ°. ΠΠ°Π΄Π° ΠΊΠ»Π°ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ΠΊΡΠ°Π»Ρ(), Ρ Π°ΡΡ Π¦ΠΎΠ΄Π΅() ΠΈ ΡΠΎΠ‘ΡΡΠΈΠ½Π³(), ΠΌΠΎΠΆΠ΅ Π±Π΅Π· ΡΠΈΡ ΠΎΠ²Π΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ΅:ΡΠ°Π²Π½ΠΈ Π·Π°ΠΏΠΈΡ ΠΠ°Π½ΠΊΠ°ΡΡΠΊΠ° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ° (ΠΠΎΡΠ°Π»ΠΠ°ΡΠ΅ Π΄Π°ΡΡΠΌ,
Π΄Π²ΠΎΡΡΡΡΠΊΠΈ ΠΈΠ·Π½ΠΎΡ
ΠΠΏΠΈΡ ΡΡΡΠΈΠ½Π³Π°) {}ΠΠ²Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π΄ΠΎΠ΄Π°ΡΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ΠΊΡΠ°Π»Ρ(), Ρ Π°ΡΡ Π¦ΠΎΠ΄Π΅() ΠΈ ΡΠΎΠ‘ΡΡΠΈΠ½Π³() ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈ Π³Π΅ΡΡΠ΅Ρ.
-
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ API Foreign-Memory Access, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π²Π½Π΅ ΠΊΡΡΠΈ Java, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡΠΌΠΈ MemorySegment, MemoryAddress ΠΈ MemoryLayout. -
ΠΠ½Π΅ΠΌΠΎΠ³ΡΡΠ΅Π½ΠΎ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΎΠΏΡΠΌΠΈΠ·Π°ΡΠΈΠΈ Biased Locking, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²ΡΠ°ΡΡΡ Π² HotSpot JVM Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ°Π½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΏΠΎΡΠ΅ΡΡΠ»Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ CPU, ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠ° Π΄Π»Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. -
ΠΠ°ΡΠ°Π²ΠΈΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌRMI Activation , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠΏΡΡΠΊΠΎΠ². ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ RMI Activation ΡΡΡΠ°ΡΠ΅Π», ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² ΡΠ°Π·ΡΡΠ΄ ΠΎΠΏΡΠΈΠΈ Π΅ΡΡ Π² Java 8 ΠΈ ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. -
ΠΠ·Π±ΡΠΈΡΠ°Π½ JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊΠ½ΠΎΡΠΎΡΠΎΠ³ , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π² Java SE 11. -
Π£ΠΊΠ»ΠΎΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΠΠ‘ Solaris ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² SPARC (Solaris/SPARC, Solaris/x64 ΠΈ Linux/SPARC). Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ OpenJDK, Π½Π΅ ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Solaris ΠΈ SPARC.
ΠΠ·Π²ΠΎΡ: ΠΎΠΏΠ΅Π½Π½Π΅Ρ.ΡΡ