ΠΠ°ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ JDK ΠΈ JRE?
JRE β Java Runtime Environment, Java-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π½Π°Π±ΠΎΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Java (JVM), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² (Java Class Library), ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, JRE Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
JDK β Java Development Kit, Π½Π°Π±ΠΎΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ SDK Π΄Π»Ρ Java. JDK Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ JRE, Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (javac) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ javadoc ΠΈ jdb. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ JDK ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Java ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ JRE, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Java, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ JDK.
JRE β Java Runtime Environment, Java-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π½Π°Π±ΠΎΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Java (JVM), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² (Java Class Library), ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, JRE Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
JDK β Java Development Kit, Π½Π°Π±ΠΎΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ SDK Π΄Π»Ρ Java. JDK Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ JRE, Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (javac) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ javadoc ΠΈ jdb. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ JDK ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Java ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ JRE, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Java, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ JDK.
π16π₯2β€1β€βπ₯1π1
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ package-info?
ΠΠ±ΡΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΅Π΅ .java ΡΠ°ΠΉΠ»Π°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΡΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π²ΠΈΠ΄Π° package full.dir.path;. ΠΡΠΎΠ³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ β ΡΠ°ΠΉΠ» package-info.java. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ .java-ΡΠ°ΠΉΠ», ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°. Π Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π΄Π΅ΡΠΈΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ.
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° package-info.java β Π²ΡΡ ΡΠ° ΠΆΠ΅ ΡΡΡΠΎΠΊΠ° package full.dir.path;. Π’Π°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π΅ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·Π° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅ β Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. Javadoc-ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠΌΠ΅Ρ β ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° java.lang. ΠΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ java/lang/package-info.java.
ΠΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ β Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ²Π½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Target PACKAGE. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Spring Framework ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @NonNullApi.
ΠΠ±ΡΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΅Π΅ .java ΡΠ°ΠΉΠ»Π°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΡΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π²ΠΈΠ΄Π° package full.dir.path;. ΠΡΠΎΠ³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ β ΡΠ°ΠΉΠ» package-info.java. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ .java-ΡΠ°ΠΉΠ», ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°. Π Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π΄Π΅ΡΠΈΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ.
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° package-info.java β Π²ΡΡ ΡΠ° ΠΆΠ΅ ΡΡΡΠΎΠΊΠ° package full.dir.path;. Π’Π°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π΅ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·Π° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅ β Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. Javadoc-ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠΌΠ΅Ρ β ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° java.lang. ΠΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ java/lang/package-info.java.
ΠΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ β Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ²Π½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Target PACKAGE. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Spring Framework ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @NonNullApi.
π11π₯2π₯°1π1
π ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Java ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° - ΠΊΠ°Π½Π°Π» Ρ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ΠΏΠΎ Java. ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΡ ΠΎΠ΄ΡΡ Π½ΠΎΠ²ΠΈΠ½ΠΊΠΈ ΠΊΠ°ΠΊ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ°ΠΊ ΠΈ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅!
π° Java News - ΠΊΠ°Π½Π°Π» Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π½ΠΎΠ²ΠΎΡΡΡΠΌΠΈ ΠΈΠ· ΠΌΠΈΡΠ° Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
π6π₯2β€1
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄ΠΎΡΡΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΡΠ»Π΅ΠΊΡΠ΅Π½ΠΎΠΌ?
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π½Π΅Ρ. Π Π΅ΡΠ»Π΅ΠΊΡΠ½-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Parameter. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅: "arg0", "arg1", ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ΅ΡΠΎΠ΄ isNamePresent ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ false, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΠ½Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π΄Π°ΠΆΠ΅ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 8 Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (javac) ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΎΠΏΡΠΈΡ -parameters. Π ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Parameter#getName() ΡΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΆΠ΅ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈΠΌΡ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JSON ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Jackson. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ Π΅ΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ.
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π°Π³Π° -parameters Jackson ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ½Π°Π±ΠΆΠ°Π»ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @JsonProperty. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»Π°ΡΡ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ»Π° ΠΈΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π²ΡΠ·Π²Π°Π² Method#getParameterAnnotations().
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π½Π΅Ρ. Π Π΅ΡΠ»Π΅ΠΊΡΠ½-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Parameter. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅: "arg0", "arg1", ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ΅ΡΠΎΠ΄ isNamePresent ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ false, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΠ½Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π΄Π°ΠΆΠ΅ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 8 Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (javac) ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΎΠΏΡΠΈΡ -parameters. Π ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Parameter#getName() ΡΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΆΠ΅ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈΠΌΡ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JSON ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Jackson. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ Π΅ΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ.
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π°Π³Π° -parameters Jackson ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ½Π°Π±ΠΆΠ°Π»ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @JsonProperty. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»Π°ΡΡ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ»Π° ΠΈΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π²ΡΠ·Π²Π°Π² Method#getParameterAnnotations().
π11π₯3
This media is not supported in your browser
VIEW IN TELEGRAM
ΠΠ°ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠΈΡΠ°ΠΏ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ΅ΠΌ ΡΡΠ΅ΠΊΠ°ΠΌ: iOS, Android, Flutter.
Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΌΠΈΡΠ°ΠΏΠ° β ΡΠ΅Ρ Π»ΠΈΠ΄Ρ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π―Π½Π΄Π΅ΠΊΡ Go ΠΈ Π―Π½Π΄Π΅ΠΊΡ ΠΡΠΎ. Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²Π΅ΡΠ΅ΡΠ° afterparty β Π½Π΅ΡΠ²ΠΎΡΠΊΠΈΠ½Π³, Π½Π°ΡΡΠΎΠ»ΠΊΠΈ, Π²ΠΊΡΡΠ½Π°Ρ Π΅Π΄Π° ΠΈ Π½Π°ΠΏΠΈΡΠΊΠΈ.
ΠΠ΅ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠΈ: ΠΠΎΡΠΊΠ²Π°-Π‘ΠΈΡΠΈ, Π±Π°ΡΠ½Ρ Β«ΠΠΊΠΎΒ»
ΠΠ°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ: 15 ΡΠ΅Π²ΡΠ°Π»Ρ, 18:30
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΌΠΈΡΠ°ΠΏΠ° β ΡΠ΅Ρ Π»ΠΈΠ΄Ρ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π―Π½Π΄Π΅ΠΊΡ Go ΠΈ Π―Π½Π΄Π΅ΠΊΡ ΠΡΠΎ. Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²Π΅ΡΠ΅ΡΠ° afterparty β Π½Π΅ΡΠ²ΠΎΡΠΊΠΈΠ½Π³, Π½Π°ΡΡΠΎΠ»ΠΊΠΈ, Π²ΠΊΡΡΠ½Π°Ρ Π΅Π΄Π° ΠΈ Π½Π°ΠΏΠΈΡΠΊΠΈ.
ΠΠ΅ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠΈ: ΠΠΎΡΠΊΠ²Π°-Π‘ΠΈΡΠΈ, Π±Π°ΡΠ½Ρ Β«ΠΠΊΠΎΒ»
ΠΠ°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ: 15 ΡΠ΅Π²ΡΠ°Π»Ρ, 18:30
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
π7
ΠΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°?
Anonymous Quiz
19%
A got caught B got caught
23%
B got caught
25%
A got caught
33%
ΠΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π21π₯7
Microservices | ΠΠΎΠΏΡΠΎΡΡ Ρ Π‘ΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ
- ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ
- ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ
- ΠΠ²ΡΠΎΡ - Lead Developer Ρ 8 Π»Π΅Ρ ΠΎΠΏΡΡΠ° Π½Π° Java/Kotlin
- ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ
- ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ
- ΠΠ²ΡΠΎΡ - Lead Developer Ρ 8 Π»Π΅Ρ ΠΎΠΏΡΡΠ° Π½Π° Java/Kotlin
π₯5β2
Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄?
Anonymous Quiz
6%
Π£Π΄Π²Π°ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π°
5%
Π£Π΄Π²Π°ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° b
88%
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² b ΡΠ΄Π²ΠΎΠ΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π°
2%
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π° ΡΠ΄Π²ΠΎΠ΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° b
π16π₯2
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΎΠ±Ρ
ΠΎΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°?
ΠΡΠΎΡ ΠΏΠΎΡΡ β Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ. ΠΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π·Π΄Π΅ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅).
ΠΠ΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π°, ΡΠ΅ΠΏΠ΅ΡΡ ΠΆΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° readObject. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ Π½Π΅ serializable ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΠΠ½ΡΡΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ReflectionFactory.newConstructorForSerialization ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° sun.reflect β ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΡ ΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Object.
Unsafe.allocateInstance β Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ.
ΠΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅ Π²ΡΠ·Π²Π°Π½ Π½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (null, 0, false). ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ final ΠΏΠΎΠ»Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ½ΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠΈΠΌΠΈ Π³ΡΡΠ·Π½ΡΠΌΠΈ Ρ Π°ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅: ΠΏΠ°ΠΊΠ΅ΡΡ sun.* Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ API Java, ΠΈ Π΅ΡΡΡ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡΡ Java.
ΠΡΠΎΡ ΠΏΠΎΡΡ β Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ. ΠΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π·Π΄Π΅ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅).
ΠΠ΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π°, ΡΠ΅ΠΏΠ΅ΡΡ ΠΆΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° readObject. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ Π½Π΅ serializable ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΠΠ½ΡΡΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ReflectionFactory.newConstructorForSerialization ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° sun.reflect β ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΡ ΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Object.
Unsafe.allocateInstance β Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ.
ΠΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅ Π²ΡΠ·Π²Π°Π½ Π½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (null, 0, false). ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ final ΠΏΠΎΠ»Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ½ΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠΈΠΌΠΈ Π³ΡΡΠ·Π½ΡΠΌΠΈ Ρ Π°ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅: ΠΏΠ°ΠΊΠ΅ΡΡ sun.* Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ API Java, ΠΈ Π΅ΡΡΡ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡΡ Java.
π13π₯3π€2
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΡΠ²Π΅Π» "I Love Programming Tests" ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ?
Anonymous Quiz
11%
ΠΠ°Π΄ΠΎ Π²Π½ΡΡΡΠΈ while Π΄ΠΎΠ±Π°Π²ΠΈΡΡ i++ Π² ΠΊΠΎΠ½ΡΠ΅, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ».
5%
ΠΠ°Π΄ΠΎ Π² System.out.print ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ text[i].
12%
ΠΠ°Π΄ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ int i = 0.
72%
ΠΠ°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠ½ΠΊΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
π12π₯5
Π£Π·Π½Π°ΠΉΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«Java NIOΒ» ΠΎΡ OTUS ΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° Π€ΠΈΡΡΠ½ΠΎΠ²Π° β Senior Kotlin Developer Π² SSP Software Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΠ’Π.
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ:
β ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Java NIO ΠΈ ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Java IO
β ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Java NIO, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π»ΡΠ±ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ;
β ΠΈΠ·ΡΡΠΈΡΠ΅ Java Core ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ 15 ΡΠ΅Π²ΡΠ°Π»Ρ Π² 20:00 ΠΌΡΠΊ.
ΠΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΡΡΡΠ° Β«Java Developer. ProfessionalΒ».
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
π5π3π₯2π₯΄1
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ classpath?
Classpath β ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ. ΠΠ° ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² JRE ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ.
ΠΡΠΎΠΌΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΠΎΠΌΠ°Π½Π΄Π° java), ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΈΠ»ΠΈΡ JDK, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ javac, javadoc ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ classpath: Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΠ‘ CLASSPATH, ΠΈ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ -cp (ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ -classpath). ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β ΡΠ΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΡΡΠΈ ΠΊ jar-ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ : Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ; Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ» *.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· jar-ΡΠ°ΠΉΠ»Π° (java -jar), classpath Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ Π² Π΅Π³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅.
Classpath β ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ. ΠΠ° ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² JRE ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ.
ΠΡΠΎΠΌΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΠΎΠΌΠ°Π½Π΄Π° java), ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΈΠ»ΠΈΡ JDK, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ javac, javadoc ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ classpath: Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΠ‘ CLASSPATH, ΠΈ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ -cp (ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ -classpath). ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β ΡΠ΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΡΡΠΈ ΠΊ jar-ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ : Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ; Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ» *.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· jar-ΡΠ°ΠΉΠ»Π° (java -jar), classpath Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ Π² Π΅Π³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅.
π9π₯3
ΠΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±Π°ΠΉΡΠΊΠΎΠ΄?
ΠΠ°ΠΉΡΠΊΠΎΠ΄ β Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. ΠΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ .java ΡΠ°ΠΉΠ»Π° ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² .class ΡΠ°ΠΉΠ»Π΅. ΠΠ½Π°Π»ΠΈΠ· Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π³Π°, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠΎΠ΄Π΅ ASM ΠΈΠ»ΠΈ BCEL.
ΠΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ. Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ JDK Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ javap. ΠΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ .class ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈ classpath Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ»ΡΡ -p Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ; -v Π²ΡΠ²Π΅Π΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅; -c ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ°ΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΉΡΠΊΠΎΠ΄ β Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. ΠΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ .java ΡΠ°ΠΉΠ»Π° ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² .class ΡΠ°ΠΉΠ»Π΅. ΠΠ½Π°Π»ΠΈΠ· Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π³Π°, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠΎΠ΄Π΅ ASM ΠΈΠ»ΠΈ BCEL.
ΠΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ. Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ JDK Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ javap. ΠΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ .class ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈ classpath Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ»ΡΡ -p Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ; -v Π²ΡΠ²Π΅Π΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅; -c ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ°ΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
π12
β
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ PostgreSQL?
Π Π°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«MVCC, vacuum ΠΈ autovacuum Π² PostgreSQLΒ» ΠΎΡ OTUS
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ MVCC, vacuum ΠΈ autovacuum Π² postgres
Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠ²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² PostgreSQL
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ 12 ΡΠ΅Π²ΡΠ°Π»Ρ Π² 20:00 ΠΌΡΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠ° Β«ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Β». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
π Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
https://otus.pw/KOsX/?erid=LjN8KYBn1
Π Π°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«MVCC, vacuum ΠΈ autovacuum Π² PostgreSQLΒ» ΠΎΡ OTUS
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ MVCC, vacuum ΠΈ autovacuum Π² postgres
Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΡΠ»ΡΡΠΈΠ²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² PostgreSQL
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ 12 ΡΠ΅Π²ΡΠ°Π»Ρ Π² 20:00 ΠΌΡΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠ° Β«ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Β». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
π Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
https://otus.pw/KOsX/?erid=LjN8KYBn1
β€5π2π1
ΠΡ ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ NoSuchMethodError?
ΠΠ°ΠΊ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π΅ΡΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΡΠΎΠ³Π΄Π° Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π΄Π²Π°. ΠΠΈΠ±ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½; Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ jar-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² classpath.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ NoSuchMethodError Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ LinkageError. ΠΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ NoSuchMethodException β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Reflection API. ΠΠ°ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Error, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΎΠ²ΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π΅ΡΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΡΠΎΠ³Π΄Π° Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π΄Π²Π°. ΠΠΈΠ±ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½; Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ jar-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² classpath.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ NoSuchMethodError Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ LinkageError. ΠΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ NoSuchMethodException β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Reflection API. ΠΠ°ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Error, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΎΠ²ΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
π13π₯°3π₯2π1
ΠΠ΅Π±ΠΈΠ½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° "Observability: ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ΅ΠΉΡΠΈΠ½Π³".
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ:
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
π4π₯2
Π ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ, AOT ΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ?
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ β ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (ahead-of-time, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ) β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ·ΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ C++. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JDK ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ahead-of-time ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ jaotc.
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (just-in-time, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ) β Β«ΡΠΌΠ½Π°ΡΒ» ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΡΠ°ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΌΠ΅Π½Π½ΠΎ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΡΠ²ΡΠ·Π°Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Β«ΠΏΡΠΎΠ³ΡΠ΅Π²Π°Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ JVM, Π½ΠΎ ΠΈ ΠΊΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Java Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ. ΠΠΎ Π² JVM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Π ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Java-ΠΊΠΎΠ΄Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ.
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° Π² JDK ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ java.lang.Compiler. ΠΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ disable() ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ JIT ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΈ Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π»ΠΈΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ β ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ JVM. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -Djava.compiler=NONE ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ JIT Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. Π ΡΠ΅ΠΎΡΠΈΠΈ, ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ Π² JVM.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ β ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (ahead-of-time, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ) β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ·ΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ C++. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JDK ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ahead-of-time ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ jaotc.
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (just-in-time, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ) β Β«ΡΠΌΠ½Π°ΡΒ» ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΡΠ°ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΌΠ΅Π½Π½ΠΎ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΡΠ²ΡΠ·Π°Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Β«ΠΏΡΠΎΠ³ΡΠ΅Π²Π°Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ JVM, Π½ΠΎ ΠΈ ΠΊΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Java Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ. ΠΠΎ Π² JVM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Π ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Java-ΠΊΠΎΠ΄Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ.
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° Π² JDK ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ java.lang.Compiler. ΠΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ disable() ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ JIT ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΈ Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π»ΠΈΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ β ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ JVM. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -Djava.compiler=NONE ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ JIT Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. Π ΡΠ΅ΠΎΡΠΈΠΈ, ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ Π² JVM.
π21β€1