ΠΠΎ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠΈ ΡΠ°Π·Π²ΠΎΡ, Oracle
Java SE 15 Π΅ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ°Π½ ΠΊΠ°ΠΊΠΎ ΠΎΠΏΡΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° ΠΈ ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ²Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π΄ΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π€ΠΈΠ»ΠΈΡΠ°Π»Π°ΡΠ° Π·Π° Π΄ΠΎΠ»Π³ΠΎΡΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° (LTS) ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Java SE 11, ΠΊΠΎΡΠ° ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ²Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π΄ΠΎ 2026 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° LTS Π³ΡΠ°Π½ΠΊΠ° Π½Π° Java 8 ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΄ΠΎ Π΄Π΅ΠΊΠ΅ΠΌΠ²ΡΠΈ 2020 Π³ΠΎΠ΄ΠΈΠ½Π°. Π‘Π»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° LTS Π΅ Π·Π°ΠΊΠ°ΠΆΠ°Π½ΠΎ Π·Π° ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ 2021 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠ° ΠΏΠΎΡΡΠ΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΠ½ΡΠ²Π°ΡΡΠΈ ΠΎΠ΄ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Java 10, ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ Π½Π° Π½ΠΎΠ² ΡΠ°Π·Π²ΠΎΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ° ΠΏΠΎΠΊΡΠ°ΡΠΎΠΊ ΡΠΈΠΊΠ»ΡΡ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°. Π‘Π΅Π³Π° Π΅ ΡΠ°Π·Π²ΠΈΠ΅Π½Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²ΠΎ Π΅Π΄Π½Π° ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°Π½Π° Π³Π»Π°Π²Π½Π° Π³ΡΠ°Π½ΠΊΠ°, ΠΊΠΎΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° Π³ΠΎΡΠΎΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠ° ΡΠΈΠ»ΠΈΡΠ°Π»ΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΡΠ²Π°Π°Ρ Π½Π° ΡΠ΅ΠΊΠΎΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠΈ Π·Π° Π΄Π° ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π°Ρ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°.
ΠΠ°
-
ΠΠ³ΡΠ°Π΄Π΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ EdDSA (Edwards-Curve Digital Signature AlgorithmRFC 8032 ). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 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 ΠΌΡ.) ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ ΠΊΡΡΠ°ΠΌΠΈ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠ΅Π½ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ·Π½Π°Π½ Π³ΠΎΡΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°Shenandoah Π·Π΅ΠΌΡΠΎΠ΄Π΅Π»ΡΠΊΠΎ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ (Low-Pause-Time Garbage Collector). Shenandoah ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΡΠΎΠΊΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π·Π° ΡΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π°Π·ΠΌΠ΅Ρ Π²Π½ΠΎΡΠΈΠΌΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠΈ, Ρ.Π΅. Π΄Π»Ρ ΠΊΡΡ Π² 200 MB ΠΈ 200 GB Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ (Π½Π΅ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ 50 ΠΌΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² 10 ΠΌΡ); - Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π²Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ β Π½ΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΌΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΈΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² Π±Π»ΠΎΠΊΠ΅. ΠΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΌΡ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ΄Π°
ΠΠΈΠ·Π° html = " Β» +
"\n\t" + " Β» +
"\n\t\t" + " \"Java 1 Π΅ ΡΡΠΊΠ°!\" Β» +
"\n\t" + " Β» +
"\n" + " ";ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅ΡΠ΅:
ΠΠΈΠ·Π° html = """
Β»ΠΠ°Π²Π° 1\
Π΅ ΡΡΠΊΠ°!
"""; -
ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ API Legacy DatagramSocket. Π‘ΡΠ°ΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ java.net.DatagramSocket ΠΈ java.net.MulticastSocket, Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Π Π°Π·Π±ΠΎΡ . ΠΠ° ΡΠ»ΡΡΠ°ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠ°ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΠ΄Π°Π»Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠΈΠΈ jdk.net.usePlainDatagramSocketImpl. - ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π²ΡΠΎΡΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΡΠΎΠ²ΠΏΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΡ βinstanceofβ, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π²Π΅Π΄Π½Π°Ρ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π°ΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅Π΄Π½Π°Ρ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ βif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}β Π±Π΅Π· Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ βString s = (String) objβ.ΠΠ΅ΡΠ΅:
if (obj instanceof Group) {
ΠΡΡΠΏΠ° Π³ΡΡΠΏΠ° = (ΠΡΡΠΏΠ°) obj;
var Π·Π°ΠΏΠΈΡΠΈ = group.getEntries();
}Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° βΠΡΡΠΏΠ½Π° Π³ΡΡΠΏΠ° = (ΠΡΡΠΏΠ°) objβ:
if (obj instanceof Group group) {
var Π·Π°ΠΏΠΈΡΠΈ = group.getEntries();
} -
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΠΎΡΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Β«ΡΠ΅ΠΊΠΎΡΠ΄ ", ΠΊΠΎΡ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° ΡΠΎΡΠΌΠ° Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΊΠ»Π°ΡΠΈ, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΡΠΈ Π²ΠΈ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ equals(), hashCode() ΠΈ toString() Π²ΠΎ ΡΠ»ΡΡΠ°ΠΈ ΠΊΠΎΠ³Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΡΠ°ΠΌΠΎ Π²ΠΎ ΠΏΠΎΠ»ΠΈΡΠ° ΡΠΈΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°. ΠΠΎΠ³Π° ΠΊΠ»Π°ΡΠ°ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ equals(), hashCode() ΠΈ toString(), ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π±Π΅Π· Π½ΠΈΠ²Π½Π° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°:ΡΠ°Π²Π½Π° Π΅Π²ΠΈΠ΄Π΅Π½ΡΠΈΡΠ° Π½Π° Π±Π°Π½ΠΊΠ°ΡΡΠΊΠ° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ° (Π»ΠΎΠΊΠ°Π»Π΅Π½ Π΄Π°ΡΡΠΌ,
Π΄Π²ΠΎΡΠ½Π° ΡΡΠΌΠ°
ΠΠΏΠΈΡ Π½Π° Π½ΠΈΠ·Π°ΡΠ°) {}ΠΠ²Π°Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ equals(), hashCode() ΠΈ toString() ΠΏΠΎΠΊΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ getter.
-
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ API Foreign-Memory Access, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π²Π½Π΅ ΠΊΡΡΠΈ Java, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡΠΌΠΈ MemorySegment, MemoryAddress ΠΈ MemoryLayout. -
ΠΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΎΠΏΡΠΌΠΈΠ·Π°ΡΠΈΠΈ Biased Locking, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²ΡΠ°ΡΡΡ Π² HotSpot JVM Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ°Π½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΏΠΎΡΠ΅ΡΡΠ»Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ CPU, ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠ° Π΄Π»Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. -
ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌRMI Activation , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠΏΡΡΠΊΠΎΠ². ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ RMI Activation ΡΡΡΠ°ΡΠ΅Π», ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² ΡΠ°Π·ΡΡΠ΄ ΠΎΠΏΡΠΈΠΈ Π΅ΡΡ Π² Java 8 ΠΈ ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. -
ΠΠ·Π±ΡΠΈΡΠ°Π½ΠΎ JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊNashorn , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π² Java SE 11. -
ΠΡΡΡΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΠΠ‘ Solaris ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² SPARC (Solaris/SPARC, Solaris/x64 ΠΈ Linux/SPARC). Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ OpenJDK, Π½Π΅ ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Solaris ΠΈ SPARC.
ΠΠ·Π²ΠΎΡ: opennet.ru