Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ?
Π Π°Π·ΠΌΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JVM ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ±ΡΡΠ½ΠΎ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° β HotSpot ΠΎΡ Oracle.
Π Π°Π·ΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π΅ΠΉ-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² Π±ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅Π»ΡΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ (alignment). ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΡΡΠΎΡΡ.
ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΡΡΡΠ»ΠΊΠ° Π² Java β Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² C++, ΡΡΠΎ Π½Π΅ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ-ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ³Π΄Π° HotSpot ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Β«ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊΒ» (Compressed OOP).
ΠΡΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² HotSpot Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° β runtime-ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ 8 Π΄ΠΎ 16 Π±Π°ΠΉΡ.
Π ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΌΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π Π°Π·ΠΌΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JVM ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ±ΡΡΠ½ΠΎ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° β HotSpot ΠΎΡ Oracle.
Π Π°Π·ΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π΅ΠΉ-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² Π±ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅Π»ΡΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ (alignment). ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΡΡΠΎΡΡ.
ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΡΡΡΠ»ΠΊΠ° Π² Java β Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² C++, ΡΡΠΎ Π½Π΅ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ-ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ³Π΄Π° HotSpot ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Β«ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊΒ» (Compressed OOP).
ΠΡΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² HotSpot Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° β runtime-ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ 8 Π΄ΠΎ 16 Π±Π°ΠΉΡ.
Π ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΌΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
π15β€4π₯4
ΠΠ° ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅Π»ΠΈΡΡΡ ΠΏΠ°ΠΌΡΡΡ JVM?
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ HotSpot (ΠΈ Π΅Ρ opensource-Π²Π΅ΡΡΠΈΠΈ OpenJDK). Π Π΄ΡΡΠ³ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Android) Π²ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠ±Π»Π°ΡΡΠΈ-ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΊΡΡΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°, ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
Stack β ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ). Π₯ΡΠ°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΊΠ° ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΡΡΡΡ. ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ΅ΠΊΠ΅ β GC roots. ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΠΎΡΠΎΠΊΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ -Xss, Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
PermGen β Π ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Class<T>). ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Ρ Java 7 Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΡΠ» ΡΡΡΠΎΠΊ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° -XX:PermSize, ΡΠ°ΡΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎ -XX:MaxPermSize. ΠΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΡΡΠΈ.
Metaspace β Ρ Java 8 Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ permanent generation. ΠΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ metaspace ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ PermGen ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -XX:MaxMetaspaceSize.
Heap β ΠΊΡΡΠ°, Π²ΡΡ managed-ΠΏΠ°ΠΌΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ β ΡΠ°ΡΡΠΈ ΠΊΡΡΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ -Xms, -Xmn ΠΈ -Xmx ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡ Ρ ΠΈΠΏΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Eden, New Generation, Old Generation ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ β ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΡΠ°ΡΡΠΈ ΠΊΡΡΠΈ, ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅, Π½ΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ: Π΄ΠΎΠ»Π³ΠΎ ΠΆΠΈΠ²ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²ΠΎ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅; ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ; ΡΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΠ° Π² Π½ΡΠΌ ΡΠ΅ΠΆΠ΅, Π½ΠΎ ΠΈ Π΄ΠΎΡΠΎΠΆΠ΅.
Π₯ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ β ΡΡΠΎ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π΄Π»Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π½Π°Π½ΠΈΡ ΠΎ Π½ΠΈΡ Π½Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΡΠΈ Π·Π½Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² JVM, ΡΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΏΠ°ΡΠ°Π΅Ρ ΠΎΡ ΠΏΡΠΎΡΠ°Π΄ΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ GC ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Ρ OutOfMemoryError.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ HotSpot (ΠΈ Π΅Ρ opensource-Π²Π΅ΡΡΠΈΠΈ OpenJDK). Π Π΄ΡΡΠ³ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Android) Π²ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠ±Π»Π°ΡΡΠΈ-ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΊΡΡΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°, ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
Stack β ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ). Π₯ΡΠ°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΊΠ° ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΡΡΡΡ. ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ΅ΠΊΠ΅ β GC roots. ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΠΎΡΠΎΠΊΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ -Xss, Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
PermGen β Π ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Class<T>). ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Ρ Java 7 Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΡΠ» ΡΡΡΠΎΠΊ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° -XX:PermSize, ΡΠ°ΡΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎ -XX:MaxPermSize. ΠΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΡΡΠΈ.
Metaspace β Ρ Java 8 Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ permanent generation. ΠΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ metaspace ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ PermGen ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -XX:MaxMetaspaceSize.
Heap β ΠΊΡΡΠ°, Π²ΡΡ managed-ΠΏΠ°ΠΌΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ β ΡΠ°ΡΡΠΈ ΠΊΡΡΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ -Xms, -Xmn ΠΈ -Xmx ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡ Ρ ΠΈΠΏΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Eden, New Generation, Old Generation ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ β ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΡΠ°ΡΡΠΈ ΠΊΡΡΠΈ, ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅, Π½ΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ: Π΄ΠΎΠ»Π³ΠΎ ΠΆΠΈΠ²ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²ΠΎ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅; ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ; ΡΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΠ° Π² Π½ΡΠΌ ΡΠ΅ΠΆΠ΅, Π½ΠΎ ΠΈ Π΄ΠΎΡΠΎΠΆΠ΅.
Π₯ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ β ΡΡΠΎ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π΄Π»Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π½Π°Π½ΠΈΡ ΠΎ Π½ΠΈΡ Π½Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΡΠΈ Π·Π½Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² JVM, ΡΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΏΠ°ΡΠ°Π΅Ρ ΠΎΡ ΠΏΡΠΎΡΠ°Π΄ΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ GC ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Ρ OutOfMemoryError.
π17β‘3
ΠΠ°ΠΊΠ°Π½ΡΠΈΡ:Java Developer
ΠΡΠ΅ΠΉΠ΄: Miiddle+/Senior/Lead
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ BSS β ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΠΠ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΡΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΠ»ΡΠ³ ΠΏΠΎ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π½Π° IT ΠΏΡΠΎΠ΅ΠΊΡΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΠΎΠΏΡΡΠ½ΡΡ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° - ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅ΠΉΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²ΡΠ·ΠΈ.
Π’Π΅Ρ .ΡΡΠ΅ΠΊ:
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
- Jira
- Confluence
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
Java 11+, , Spring (web, data jpa, security, boot 2.5), Oracle 19, PostgreSQL, SQL, Camunda, Kafka, RabbitMQ, Gradle, Maven
ΠΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ:
β’ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Java;
β’ ΠΡΠ΅Π½ΠΊΠ° ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π°Π΄Π°Ρ;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΎ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ/ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΡ/ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ;
β’ ΠΠ°Π³ΡΠΈΠΊΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ unit-tests;
β’ Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΠ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π² Π±Π°Π³-ΡΡΠ΅ΠΊΠΈΠ½Π³ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ;
β’ Π‘Π²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΡΡΠ°ΡΠ°Ρ Π² ΡΠ°Π·ΡΠ΅Π·Π΅ Π·Π°Π΄Π°Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ 3+ Π³ΠΎΠ΄Π°;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ
β’ Π§Π΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΠ;
β’ Π£Π²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Java 8; Java 11
β’ ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Spring ΠΈ SpringBoot;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ;
β’ Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ message brokers (RabbitMQ, Kafka);
β’ ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈ Unit-ΡΠ΅ΡΡΠΎΠ²;
β’ ! ΠΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ Π²ΠΎΠ΅Π½Π½ΡΠΉ Π±ΠΈΠ»Π΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΠΎ (Π΄Π»Ρ Π²ΠΎΠ΅Π½Π½ΠΎΠΎΠ±ΡΠ·Π°Π½Π½ΡΡ )
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ API (REST, SOAP - ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ);
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ debugβΠΎΠΌ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ);
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Jira Atlassian;
ΠΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ:
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Code Review;
β’ ΠΠΏΡΡ Ρ JPA Specification;
β’ ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ² (Oracle);
β’ ΠΠΏΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Linux (CLI).
β’ Π Π°Π±ΠΎΡΠ° Ρ GitLab, ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ git-flow.
Π£ΡΠ»ΠΎΠ²ΠΈΡ:
β’ Π£Π΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π Π€, Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π² ΠΠΎΡΠΊΠ²Π΅/ΠΠ΅Π½Π·Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ (1-2 ΡΠ°Π·Π° Π² Π½Π΅Π΄Π΅Π»Ρ Π² ΠΎΡΠΈΡΠ΅);
β’ Π Π°Π±ΠΎΡΠ° Π½Π° ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Π² Π°ΠΊΠΊΡΠ΅Π΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;
β’ ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π’Π Π Π€ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΡΠΏΠ»Π°ΡΠ° Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ;
β’ ΠΠΠ‘ Π΄Π»Ρ Π²Π°Ρ ΠΈ ΡΠ΅ΠΌΡΠΈ;
β’ Π‘ΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½ΠΈ;
β’ ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΈΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ;
β’ ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Performance Review.
ΠΠΎΠ½ΡΠ°ΠΊΡΡ:
@olga_sourcer
ΠΡΠ΅ΠΉΠ΄: Miiddle+/Senior/Lead
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ BSS β ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΠΠ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΡΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΠ»ΡΠ³ ΠΏΠΎ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π½Π° IT ΠΏΡΠΎΠ΅ΠΊΡΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΠΎΠΏΡΡΠ½ΡΡ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° - ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅ΠΉΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²ΡΠ·ΠΈ.
Π’Π΅Ρ .ΡΡΠ΅ΠΊ:
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
- Jira
- Confluence
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
Java 11+, , Spring (web, data jpa, security, boot 2.5), Oracle 19, PostgreSQL, SQL, Camunda, Kafka, RabbitMQ, Gradle, Maven
ΠΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ:
β’ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Java;
β’ ΠΡΠ΅Π½ΠΊΠ° ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π°Π΄Π°Ρ;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΎ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ/ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΡ/ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ;
β’ ΠΠ°Π³ΡΠΈΠΊΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ unit-tests;
β’ Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΠ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π² Π±Π°Π³-ΡΡΠ΅ΠΊΠΈΠ½Π³ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ;
β’ Π‘Π²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΡΡΠ°ΡΠ°Ρ Π² ΡΠ°Π·ΡΠ΅Π·Π΅ Π·Π°Π΄Π°Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ 3+ Π³ΠΎΠ΄Π°;
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ
β’ Π§Π΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΠ;
β’ Π£Π²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Java 8; Java 11
β’ ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Spring ΠΈ SpringBoot;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ;
β’ Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ message brokers (RabbitMQ, Kafka);
β’ ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈ Unit-ΡΠ΅ΡΡΠΎΠ²;
β’ ! ΠΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ Π²ΠΎΠ΅Π½Π½ΡΠΉ Π±ΠΈΠ»Π΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΠΎ (Π΄Π»Ρ Π²ΠΎΠ΅Π½Π½ΠΎΠΎΠ±ΡΠ·Π°Π½Π½ΡΡ )
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ API (REST, SOAP - ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ);
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ debugβΠΎΠΌ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ);
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Jira Atlassian;
ΠΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ:
β’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Code Review;
β’ ΠΠΏΡΡ Ρ JPA Specification;
β’ ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ² (Oracle);
β’ ΠΠΏΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ;
β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Linux (CLI).
β’ Π Π°Π±ΠΎΡΠ° Ρ GitLab, ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ git-flow.
Π£ΡΠ»ΠΎΠ²ΠΈΡ:
β’ Π£Π΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π Π€, Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π² ΠΠΎΡΠΊΠ²Π΅/ΠΠ΅Π½Π·Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ (1-2 ΡΠ°Π·Π° Π² Π½Π΅Π΄Π΅Π»Ρ Π² ΠΎΡΠΈΡΠ΅);
β’ Π Π°Π±ΠΎΡΠ° Π½Π° ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Π² Π°ΠΊΠΊΡΠ΅Π΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;
β’ ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π’Π Π Π€ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΡΠΏΠ»Π°ΡΠ° Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ;
β’ ΠΠΠ‘ Π΄Π»Ρ Π²Π°Ρ ΠΈ ΡΠ΅ΠΌΡΠΈ;
β’ Π‘ΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½ΠΈ;
β’ ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΈΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ;
β’ ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Performance Review.
ΠΠΎΠ½ΡΠ°ΠΊΡΡ:
@olga_sourcer
π6β€3π₯1
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
29%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² 4-ΠΉ ΡΡΡΠΎΠΊΠ΅
22%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² 5-ΠΉ ΡΡΡΠΎΠΊΠ΅
11%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² 6-ΠΉ ΡΡΡΠΎΠΊΠ΅
12%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² 7-ΠΉ ΡΡΡΠΎΠΊΠ΅
19%
ΠΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ: [1.5] [1.5]
7%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
π10π₯4
βΠ Π°ΡΡΠΈΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΡΠ΅ΠΊ ΠΈ Π°ΠΏΠ½ΠΈΡΠ΅ΡΡ Π² Π·Π°ΡΠΏΠ»Π°ΡΠ΅!
πΠΠ°ΡΠ½ΠΈΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° Β«Greenplum Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ²Β» - Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Greenplum ΠΈ Π΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ»: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. Π ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π¦Π΅Π»ΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ°:
1. ΠΡΠ½ΠΎΠ²Ρ: ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Greenplum ΠΈ Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ.
2. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°: ΠΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° MPP (Massively Parallel Processing).
3. ΠΡΠ°ΠΊΡΠΈΠΊΠ°: ΠΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ.
4. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: Π Π°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PostgreSQL.
π€ΠΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΎΠΊ β ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠ΅ ΠΏΠΎ ΡΠΏΠ΅ΡΡΠ΅Π½Π΅ ΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΡΡΡΠΎΡΠΊΡ!
erid: LjN8K1J6X
πΠΠ°ΡΠ½ΠΈΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° Β«Greenplum Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ²Β» - Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Greenplum ΠΈ Π΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ»: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. Π ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π¦Π΅Π»ΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ°:
1. ΠΡΠ½ΠΎΠ²Ρ: ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Greenplum ΠΈ Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ.
2. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°: ΠΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° MPP (Massively Parallel Processing).
3. ΠΡΠ°ΠΊΡΠΈΠΊΠ°: ΠΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ.
4. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: Π Π°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PostgreSQL.
π€ΠΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΎΠΊ β ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠ΅ ΠΏΠΎ ΡΠΏΠ΅ΡΡΠ΅Π½Π΅ ΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΡΡΡΠΎΡΠΊΡ!
erid: LjN8K1J6X
π4π₯3
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ-ΠΌΠ°ΡΡΠΈΠ². Π Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ΅ Ρ Java 5 Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ: Variable-length argument (vararg). Π’ΡΠΈ ΡΠΎΡΠΊΠΈ ... ΡΡΠ°Π²ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠΎΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Ρ ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ².
ΠΠ° ΡΡΠΎΠ²Π½Π΅ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ Π²Π°ΡΠ°ΡΠ³Π° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ: vararg-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Foo... ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΠΌΠ°ΡΡΠΈΠ² Foo[], Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π° vararg Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅: ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
Vararg, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ², ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ int... ΠΈ float.... ΠΡΠ·ΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² Π²Π°ΡΠΈΠ°Π½Ρ Ρ int, ΠΊΠ°ΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Ρ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ int... ΠΈ boolean..., ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Β«Ambiguous method callΒ».
ΠΠΎΠ³Π΄Π° ΡΠΈΠΏΠΎΠΌ Π²Π°ΡΠ°ΡΠ³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ warning Β«Possible heap pollution from parameterized vararg typeΒ». ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ Π² ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠΈΡΠΊ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ heap pollution, ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @SafeVarargs.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ-ΠΌΠ°ΡΡΠΈΠ². Π Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ΅ Ρ Java 5 Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ: Variable-length argument (vararg). Π’ΡΠΈ ΡΠΎΡΠΊΠΈ ... ΡΡΠ°Π²ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠΎΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Ρ ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ².
ΠΠ° ΡΡΠΎΠ²Π½Π΅ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ Π²Π°ΡΠ°ΡΠ³Π° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ: vararg-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Foo... ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΠΌΠ°ΡΡΠΈΠ² Foo[], Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π° vararg Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅: ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
Vararg, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ², ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ int... ΠΈ float.... ΠΡΠ·ΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² Π²Π°ΡΠΈΠ°Π½Ρ Ρ int, ΠΊΠ°ΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Ρ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ int... ΠΈ boolean..., ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Β«Ambiguous method callΒ».
ΠΠΎΠ³Π΄Π° ΡΠΈΠΏΠΎΠΌ Π²Π°ΡΠ°ΡΠ³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ warning Β«Possible heap pollution from parameterized vararg typeΒ». ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ Π² ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠΈΡΠΊ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ heap pollution, ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @SafeVarargs.
π11π₯5
ΠΡΠΎΠΉΠ΄ΠΈ ΡΠ΅ΡΡ ΠΏΠΎ Java ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ, Π³ΠΎΡΠΎΠ² Π»ΠΈ ΡΡ ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΡΡΡΠ΅.
ΠΡΠ²Π΅ΡΠΈΡΡ β ΠΏΡΠΎΠΉΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ "Java Developer. Professional" ΠΎΡ OTUS ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅ + ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΏΠΈΡΡΠΌ ΠΎΡΠΊΡΡΡΡΡ ΡΡΠΎΠΊΠΎΠ² ΠΊΡΡΡΠ° ΠΊΡΡΡΠ°
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
β€3π3π₯2π1
ΠΠ°ΠΊ Π² Π»ΡΠΌΠ±Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ?
ΠΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π»ΠΎΠ±. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½Π°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ·Π°Π½Π° Π±ΡΡΡ effectively final. Π’Π°ΠΊΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½.
ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΡΡΠ΅ΠΊΠ΅, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ΠΌΡ Π΅Π΅ ΠΆΠΈΠ·Π½ΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠΏΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠΊΠΎΡΠΏΠΎΠΌ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π»ΡΠΌΠ±Π΄Ρ, Π·Π°Ρ Π²Π°ΡΠΈΠ²ΡΠΈΠΉ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π½Π°ΡΡΠΆΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π»ΡΠΌΠ±Π΄Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠΏΠΈΡ ΠΆΠΈΠ²Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠΠΎ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ β ΠΊΠΎΠΏΠΈΡ ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΡΡΠ°Π½ΡΡ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π΅ΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ β Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎ.
ΠΠΎΠ»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΡΠΏΠ°Π΅Ρ effectively final Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this.
ΠΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΡ ΠΆΠ΅ Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Ρ Π² ΠΊΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΎΠ±Π΅ΡΡΠΊΡ: ΠΎΠ΄Π½ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΎΠ±ΡΠ΅ΠΊΡ-atomic, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅ΠΌ.
Π₯Π°ΠΊ Ρ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π΄Π°ΡΡ ΠΊΠΎΠ΄Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π°Ρ, ΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π»ΠΎΠ±. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½Π°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ·Π°Π½Π° Π±ΡΡΡ effectively final. Π’Π°ΠΊΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½.
ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΡΡΠ΅ΠΊΠ΅, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ΠΌΡ Π΅Π΅ ΠΆΠΈΠ·Π½ΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠΏΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠΊΠΎΡΠΏΠΎΠΌ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π»ΡΠΌΠ±Π΄Ρ, Π·Π°Ρ Π²Π°ΡΠΈΠ²ΡΠΈΠΉ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π½Π°ΡΡΠΆΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π»ΡΠΌΠ±Π΄Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠΏΠΈΡ ΠΆΠΈΠ²Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠΠΎ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ β ΠΊΠΎΠΏΠΈΡ ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΡΡΠ°Π½ΡΡ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π΅ΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ β Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎ.
ΠΠΎΠ»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΡΠΏΠ°Π΅Ρ effectively final Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this.
ΠΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΡ ΠΆΠ΅ Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Ρ Π² ΠΊΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΎΠ±Π΅ΡΡΠΊΡ: ΠΎΠ΄Π½ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΎΠ±ΡΠ΅ΠΊΡ-atomic, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅ΠΌ.
Π₯Π°ΠΊ Ρ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π΄Π°ΡΡ ΠΊΠΎΠ΄Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π°Ρ, ΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
π19π₯5β€2
ΠΡΠΎΠ²Π΅ΡΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΡ Π·Π½Π°Π΅ΡΡ Java ΠΈ Π³ΠΎΡΠΎΠ² ΠΎΡΠ²ΠΎΠΈΡΡ
ΠΡΠ²Π΅ΡΠΈΡΡ β ΠΏΡΠΎΠΉΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ "Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Spring Framework" ΠΎΡ OTUS ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅.
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
β€4π₯2π1
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π΅Π΄Π»ΠΎΠΊ?
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅. Deadlock β ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠ° Β«Π½Π°ΡΡΡΠΏΠ°ΡΡ Π΄ΡΡΠ³-Π΄ΡΡΠ³Ρ Π½Π° Ρ Π²ΠΎΡΡΒ» β Π·Π°Π²ΠΈΡΠ°ΡΡ Π² Π²Π΅ΡΠ½ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³ΠΎΠΌ.
Livelock β ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΡΠ΅ΠΌ Π»ΠΈΡΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°ΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Ρ ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΊΡΡΠ³Ρ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π°ΡΠΈΡΡ ΠΎΡ Π΄Π΅Π΄Π»ΠΎΠΊΠ° β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²Π·ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ² A ΠΈ B ΡΠΎΠ±Π»ΡΠ΄Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°Ρ Π²Π°ΡΠ° AB (ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ BA), ΡΠΎ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π½Π΅ ΡΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ B, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π°Ρ Π²Π°ΡΠΈΠ² A.
ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π΄Π»ΠΎΠΊΠ° β ΡΠ²Π½ΠΎ Π½Π°ΡΡΡΠΈΡΡ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅.
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π°ΡΡ Π΄Π΅Π΄Π»ΠΎΠΊ Β«ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄ΡΒ». Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎ ΠΈ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°Π·Π°, Π½ΡΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠΊΠ°ΠΆΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Ρ Π²Π°ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° Π² ΠΎΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ CyclicBarrier.
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅. Deadlock β ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠ° Β«Π½Π°ΡΡΡΠΏΠ°ΡΡ Π΄ΡΡΠ³-Π΄ΡΡΠ³Ρ Π½Π° Ρ Π²ΠΎΡΡΒ» β Π·Π°Π²ΠΈΡΠ°ΡΡ Π² Π²Π΅ΡΠ½ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³ΠΎΠΌ.
Livelock β ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΡΠ΅ΠΌ Π»ΠΈΡΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°ΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Ρ ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΊΡΡΠ³Ρ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π°ΡΠΈΡΡ ΠΎΡ Π΄Π΅Π΄Π»ΠΎΠΊΠ° β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²Π·ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ² A ΠΈ B ΡΠΎΠ±Π»ΡΠ΄Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°Ρ Π²Π°ΡΠ° AB (ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ BA), ΡΠΎ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π½Π΅ ΡΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ B, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π°Ρ Π²Π°ΡΠΈΠ² A.
ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π΄Π»ΠΎΠΊΠ° β ΡΠ²Π½ΠΎ Π½Π°ΡΡΡΠΈΡΡ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅.
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π°ΡΡ Π΄Π΅Π΄Π»ΠΎΠΊ Β«ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄ΡΒ». Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎ ΠΈ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°Π·Π°, Π½ΡΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠΊΠ°ΠΆΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Ρ Π²Π°ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° Π² ΠΎΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ CyclicBarrier.
π9π₯2β1
Π’Π΅ΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Middle Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π°Π²ΡΡΠ°
Π£ΠΆΠ΅ Π·Π°Π²ΡΡΠ°, 25 ΡΠ΅Π½ΡΡΠ±ΡΡ Π² 19:00 ΠΏΠΎ ΠΌΡΠΊ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Π½Π° Middle Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ:
1. ΠΠ°ΡΠΈΡ Π―Π΄Π΅ΡΡΠΎΠ²Π° Π²Π΅Π΄ΡΡΠΈΠΉ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΠ’Π‘ ΠΠΈΠ΄ΠΆΠΈΡΠ°Π» ΠΈ ex. Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ-Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ-Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΡΡ
2. ΠΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΠ΅Π³ΠΎ ΠΎΡ Π²Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΡΡΡΠΈΠΉ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
3. Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΠ°ΡΠΈΠΈ
Π§ΡΠΎ ΡΠ·Π½Π°Π΅ΡΡ Π½Π° ΠΏΡΡΠΌΠΎΠΌ ΡΡΠΈΡΠ΅ ΠΎΡ Π¨ΠΠ Π’ΠΠΠ’:
Β· Π§Π΅Π³ΠΎ ΠΆΠ΄ΡΡ ΠΎΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Π½Π° Middle ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
Β· ΠΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ
Β· ΠΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡΡΡ ΠΊ ΡΠΎΠ±Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅Ρ
ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ? ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈ Π² Π½Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΈΡ β @shortcut_sh_bot
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ "Π¨ΠΠ Π’ΠΠΠ’", ΠΠΠ: 9731139396, erid: 2VtzqvMv5C4
Π£ΠΆΠ΅ Π·Π°Π²ΡΡΠ°, 25 ΡΠ΅Π½ΡΡΠ±ΡΡ Π² 19:00 ΠΏΠΎ ΠΌΡΠΊ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Π½Π° Middle Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ:
1. ΠΠ°ΡΠΈΡ Π―Π΄Π΅ΡΡΠΎΠ²Π° Π²Π΅Π΄ΡΡΠΈΠΉ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΠ’Π‘ ΠΠΈΠ΄ΠΆΠΈΡΠ°Π» ΠΈ ex. Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ-Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ-Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΡΡ
2. ΠΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΠ΅Π³ΠΎ ΠΎΡ Π²Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΡΡΡΠΈΠΉ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
3. Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΠ°ΡΠΈΠΈ
Π§ΡΠΎ ΡΠ·Π½Π°Π΅ΡΡ Π½Π° ΠΏΡΡΠΌΠΎΠΌ ΡΡΠΈΡΠ΅ ΠΎΡ Π¨ΠΠ Π’ΠΠΠ’:
Β· Π§Π΅Π³ΠΎ ΠΆΠ΄ΡΡ ΠΎΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Π½Π° Middle ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
Β· ΠΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ
Β· ΠΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡΡΡ ΠΊ ΡΠΎΠ±Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅Ρ
ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ? ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈ Π² Π½Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΈΡ β @shortcut_sh_bot
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ "Π¨ΠΠ Π’ΠΠΠ’", ΠΠΠ: 9731139396, erid: 2VtzqvMv5C4
π₯4π3β€2
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ Π°ΡΠΎΠΌΠΈΠΊΠΈ?
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΎΠΌΠΈΠΊΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ. Atomic* β ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ· java.util.concurrent. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°Π±ΠΎΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getAndIncrement/incrementAndGet ΠΊΠ»Π°ΡΡΠ° AtomicInteger ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΉ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ (i++).
Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° atomic-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ: compare-and-set ΠΈ set-and-get.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ compare-and-set ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½ΠΎΠ²ΠΎΠ΅. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π»ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅. ΠΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΡΡΡ Π²ΡΠ·ΠΎΠ² Π² ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Unsafe, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° compare-and-swap (CAS). ΠΠΎΡΡΠΎΠΌΡ Π°ΡΠΎΠΌΠΈΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.
Π ΡΠ»ΡΡΠ°Π΅ set-and-get ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ΅Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΡΠΊ: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ½Π°ΡΠ°Π»Π° ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅, ΡΠΎΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CAS, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ ΠΌΠΎΠ³Π»Π° ΡΡΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π°ΠΆΠ΅ Π·Π° ΡΡΠΎΡ ΡΠ°Π³. ΠΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΡΠ΅Π½ΠΈΡ+Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅, ΠΏΠΎΠΊΠ° ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π°.
ΠΡΠΎΡ ΡΡΡΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ double-checked ΠΈΠ»ΠΈ optimistic locking, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ρ Π»ΡΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ Π½Π΅Ρ, ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π³ΠΎΠ½ΠΊΠ° Π²ΡΡ ΠΆΠ΅ ΡΠ»ΡΡΠΈΠ»Π°ΡΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°Π½Π° ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°.
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΎΠΌΠΈΠΊΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ. Atomic* β ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ· java.util.concurrent. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°Π±ΠΎΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getAndIncrement/incrementAndGet ΠΊΠ»Π°ΡΡΠ° AtomicInteger ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΉ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ (i++).
Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° atomic-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ: compare-and-set ΠΈ set-and-get.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ compare-and-set ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½ΠΎΠ²ΠΎΠ΅. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π»ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅. ΠΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΡΡΡ Π²ΡΠ·ΠΎΠ² Π² ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Unsafe, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° compare-and-swap (CAS). ΠΠΎΡΡΠΎΠΌΡ Π°ΡΠΎΠΌΠΈΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.
Π ΡΠ»ΡΡΠ°Π΅ set-and-get ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ΅Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΡΠΊ: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ½Π°ΡΠ°Π»Π° ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅, ΡΠΎΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CAS, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ ΠΌΠΎΠ³Π»Π° ΡΡΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π°ΠΆΠ΅ Π·Π° ΡΡΠΎΡ ΡΠ°Π³. ΠΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΡΠ΅Π½ΠΈΡ+Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅, ΠΏΠΎΠΊΠ° ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π°.
ΠΡΠΎΡ ΡΡΡΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ double-checked ΠΈΠ»ΠΈ optimistic locking, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ρ Π»ΡΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ Π½Π΅Ρ, ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π³ΠΎΠ½ΠΊΠ° Π²ΡΡ ΠΆΠ΅ ΡΠ»ΡΡΠΈΠ»Π°ΡΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°Π½Π° ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°.
π16β€5π₯2
Π₯ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Java, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ?
ΠΠ΄Π΅ΠΌ Π²Π°Ρ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ 26 ΡΠ΅Π½ΡΡΠ±ΡΡ Π² 20:00 ΠΌΡΠΊ,
Π³Π΄Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ:
Π£ΡΠΎΠΊ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Java Ρ Π½ΡΠ»Ρ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
π Π‘ΠΏΠΈΠΊΠ΅Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π€ΠΈΡΡΠ½ΠΎΠ² β Senior Kotlin Developer Π² SSP Software Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΠ’Π, ΠΎΠΏΡΡΠ½ΡΠΉ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°ΡΠΊ.
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ».
ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π½Ρ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
π₯4π₯°3π2β€1π₯΄1
Forwarded from Java Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΊΠΎΠ΄ ΡΠ²Π΅ΡΡ
Ρ?
ΠΡΠ²Π΅Ρ:Not equal. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ real Π½Π΅ ΡΠ°Π²Π½Π° ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Π΅. ΠΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ IEEE 754, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«NaNΒ» (ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Β«Not a NumberΒ» β Π½Π΅ ΡΠΈΡΠ»ΠΎ), ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π½ΠΎΠ»Ρ. Π ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ NaN Π½Π΅ ΡΠ°Π²Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π±Ρ.
@javalib #java
ΠΡΠ²Π΅Ρ:
@javalib #java
π31β€3π₯3π3
Amplicode ΡΡΠΈΡ Π²Π°ΡΡ IDE Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Spring Boot!
Amplicode β ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ IntelliJ IDEA Community ΠΈ Ultimate, ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct ΠΈ Ρ.Π΄.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
β‘ ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Spring ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
β‘ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π·Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π²ΠΌΠ΅ΡΡΠΎ Java ΠΊΠ»Π°ΡΡΠΎΠ²: ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΠ΅ΡΠ²ΠΈΡΡ, ΡΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ±ΡΡΠΈΡ, DTO, ΠΌΠ°ΠΏΠΏΠ΅ΡΡ ΠΈ Ρ.Π΄.
β‘ ΠΠ°Π»ΠΈΡΡΠ° ΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΎΠΏΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅
β‘ Π£ΠΌΠ½ΡΠ΅ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΎ ΠΌΠ°Π»Π°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ³ΠΎ, Π½Π° ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Amplicode. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
Π‘Π΄Π΅Π»Π°Π½ΠΎ Ρ Π»ΡΠ±ΠΎΠ²ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΡΠΎΠ·Π΄Π°Π²ΡΠ΅ΠΉ ΡΡΠΏΠ΅ΡΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ JPA Buddy β€οΈ
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Amplicode
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Amplicode ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Spring Boot Π² IntelliJ IDEA!
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ°
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
Amplicode β ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ IntelliJ IDEA Community ΠΈ Ultimate, ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct ΠΈ Ρ.Π΄.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
β‘ ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Spring ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
β‘ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π·Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π²ΠΌΠ΅ΡΡΠΎ Java ΠΊΠ»Π°ΡΡΠΎΠ²: ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΠ΅ΡΠ²ΠΈΡΡ, ΡΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ±ΡΡΠΈΡ, DTO, ΠΌΠ°ΠΏΠΏΠ΅ΡΡ ΠΈ Ρ.Π΄.
β‘ ΠΠ°Π»ΠΈΡΡΠ° ΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΎΠΏΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅
β‘ Π£ΠΌΠ½ΡΠ΅ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΎ ΠΌΠ°Π»Π°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ³ΠΎ, Π½Π° ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Amplicode. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
Π‘Π΄Π΅Π»Π°Π½ΠΎ Ρ Π»ΡΠ±ΠΎΠ²ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΡΠΎΠ·Π΄Π°Π²ΡΠ΅ΠΉ ΡΡΠΏΠ΅ΡΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ JPA Buddy β€οΈ
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Amplicode
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Amplicode ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Spring Boot Π² IntelliJ IDEA!
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ°
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
π11β€2π₯2
Highload, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΊΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΊΠ°ΡΠΊΠΈ Π½Π°Π²ΡΠΊΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
π Π‘ ΠΊΡΡΡΠΎΠΌ Β«Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²Β» Π²Ρ:
βͺοΈΠΈΠ·ΡΡΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠ΅ΠΉ (Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΏΠΏ/ΠΊΠ΅ΡΠ΅ΠΉ/ΡΡΠ±Π΄, Π²ΡΡΠΎΠΊΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΡΠ΄ΠΈΠ½Π³, CAP/PACELS, ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ, ΡΠ°Π³ΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅)
βͺοΈΠΏΠΎΡΠΏΡΠ°ΠΆΠ½ΡΠ΅ΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ : ΠΌΠ°Π³Π°Π·ΠΈΠ½/ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ, ΡΠ°ΠΊΡΠΈ/Π΄ΠΎΡΡΠ°Π²ΠΊΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠΎΡΡΠ΅ΡΠΈ, Π΄Π΅ΠΉΡΠΈΠ½Π³, ΠΈΠ³ΡΡ, Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ, ΠΌΠ΅ΡΡΠ΅Π½ΠΆΠ΅Ρ, CDN, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΈΠ½ΠΎΡΠ΅Π°ΡΡ, ΡΡΠ΅ΡΡΠΈΠΊΠΈ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π²Π΅Π±Ρ ΡΠΊΠΈ, ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈ ΡΠ΄.
βͺοΈ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ
Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Ρ Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅
βͺοΈ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
ΠΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Β«ΠΆΠΈΠ²ΡΡ Β» ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΠΈΠΉ (Π»Π΅ΠΊΡΠΈΠΈ, Π±ΡΠ΅ΠΉΠ½ΡΡΠΎΡΠΌΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²).
π₯Έ ΠΡΠΎ ΠΌΡ: ΡΠΊΠΎΠ»Π° Devhands, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠΎΠ»Ρ ΠΈ Π°Π²ΡΠΎΡ ΠΊΡΡΡΠ° ΠΠ»Π΅ΠΊΡΠ΅ΠΉ Π ΡΠ±Π°ΠΊ, ex-Π‘Π’Π Badoo, Ρ 20-Π»Π΅ΡΠ½ΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ, ΡΠ»Π΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° Highload.
π Π‘ΡΠ°ΡΡ 22-Π³ΠΎ ΠΎΠΊΡΡΠ±ΡΡ, ΠΈΠ·ΡΡΠ°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π·Π΄Π΅ΡΡ
erid: 2VtzquffYem
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΊΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΊΠ°ΡΠΊΠΈ Π½Π°Π²ΡΠΊΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
βͺοΈΠΈΠ·ΡΡΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠ΅ΠΉ (Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΏΠΏ/ΠΊΠ΅ΡΠ΅ΠΉ/ΡΡΠ±Π΄, Π²ΡΡΠΎΠΊΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΡΠ΄ΠΈΠ½Π³, CAP/PACELS, ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ, ΡΠ°Π³ΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅)
βͺοΈΠΏΠΎΡΠΏΡΠ°ΠΆΠ½ΡΠ΅ΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ : ΠΌΠ°Π³Π°Π·ΠΈΠ½/ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ, ΡΠ°ΠΊΡΠΈ/Π΄ΠΎΡΡΠ°Π²ΠΊΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠΎΡΡΠ΅ΡΠΈ, Π΄Π΅ΠΉΡΠΈΠ½Π³, ΠΈΠ³ΡΡ, Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ, ΠΌΠ΅ΡΡΠ΅Π½ΠΆΠ΅Ρ, CDN, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΈΠ½ΠΎΡΠ΅Π°ΡΡ, ΡΡΠ΅ΡΡΠΈΠΊΠΈ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π²Π΅Π±Ρ ΡΠΊΠΈ, ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈ ΡΠ΄.
βͺοΈ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ
Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Ρ Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅
βͺοΈ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
ΠΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Β«ΠΆΠΈΠ²ΡΡ Β» ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΠΈΠΉ (Π»Π΅ΠΊΡΠΈΠΈ, Π±ΡΠ΅ΠΉΠ½ΡΡΠΎΡΠΌΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²).
erid: 2VtzquffYem
Please open Telegram to view this post
VIEW IN TELEGRAM
π9π₯2
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ daemon thread?
ΠΠ΅ΠΌΠΎΠ½ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ β ΡΠΎΠ½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π Java ΠΏΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠΆΠΈΠΉ ΡΠΌΡΡΠ»: ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ½ΠΎΠ²ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΠΎΠΊΠΈ Π½Π΅-Π΄Π΅ΠΌΠΎΠ½Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ (user thread).
Π’ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π΅ΠΌΠΎΠ½. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Java-ΡΡΠ΅Π΄Π° isDaemon ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎ ΡΡΠ°ΡΡΠ° ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄Ρ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈΡΡ, JVM Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅ΠΌΠΎΠ½Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ.
Daemon thread ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΊΡΡΠ°, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠ°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ΅ΠΌΠΎΠ½ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ β ΡΠΎΠ½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π Java ΠΏΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠΆΠΈΠΉ ΡΠΌΡΡΠ»: ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ½ΠΎΠ²ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΠΎΠΊΠΈ Π½Π΅-Π΄Π΅ΠΌΠΎΠ½Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ (user thread).
Π’ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π΅ΠΌΠΎΠ½. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Java-ΡΡΠ΅Π΄Π° isDaemon ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎ ΡΡΠ°ΡΡΠ° ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄Ρ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈΡΡ, JVM Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅ΠΌΠΎΠ½Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ.
Daemon thread ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΊΡΡΠ°, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠ°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
π11π₯3
ΠΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² Java-ΠΌΠΈΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
π Π£Π·Π½Π°ΠΉΡΠ΅ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ 10 ΠΎΠΊΡΡΠ±ΡΡ Π² 20:00 ΠΌΡΠΊ.
ΠΠ΄Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ:
- ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Spring Cloud ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ Π½ΡΠΆΠ΅Π½;
- ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ Spring Cloud;
- ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Spring Cloud Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘ΠΏΠΈΠΊΠ΅Ρ Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠ΅ΡΡΠ΅Π»Π΅Π²ΠΈΡ β ΠΎΠΏΡΡΠ½ΡΠΉ Java/Kotlin-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ.
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«Java Developer. ProfessionalΒ». ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π½Ρ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
π₯°4π2π₯2
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ thread local ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅?
ΠΠ»Π°ΡΡ ThreadLocal ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΡΠ΅Π΄-Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ Π½Π°Π΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ get(), set() ΠΈ remove() Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ°Π±ΡΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ThreadLocal.withInitial(), ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠ»ΠΈΡΠΈΠ΅ ΡΡΠ΅Π΄-Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ThreadLocal Ρ ΡΠ°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΊΠΎΠΏΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ThreadLocal Ρ ΡΠ°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΠΊΠ°ΠΊ Π±Ρ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠΊβΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ΅ΡΠ²ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ΅Π΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°Β». ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ThreadId.get() Π²Π΅ΡΠ½Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π°.
ΠΡΡΠ³ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ β ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ read-only Π΄Π°Π½Π½ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π±Π΅Π· Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅ΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ThreadLocal, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ InheritableThreadLocal. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Β«Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΒ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±Π΅ΡΠ΅Ρ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ.
ΠΠ»Π°ΡΡ ThreadLocal ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΡΠ΅Π΄-Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ Π½Π°Π΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ get(), set() ΠΈ remove() Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ°Π±ΡΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ThreadLocal.withInitial(), ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠ»ΠΈΡΠΈΠ΅ ΡΡΠ΅Π΄-Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ThreadLocal Ρ ΡΠ°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΊΠΎΠΏΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ThreadLocal Ρ ΡΠ°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΠΊΠ°ΠΊ Π±Ρ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠΊβΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ΅ΡΠ²ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ΅Π΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°Β». ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ThreadId.get() Π²Π΅ΡΠ½Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π°.
ΠΡΡΠ³ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ β ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ read-only Π΄Π°Π½Π½ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π±Π΅Π· Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅ΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ThreadLocal, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ InheritableThreadLocal. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Β«Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΒ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±Π΅ΡΠ΅Ρ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ.
π14π₯2β€1
Kafka, Docker, Spring Cloud, CI/CD, Kubernetes, Prometheus, Grafana, ELK, ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (Discovery, API Gateway, Config, Circuit Breaker ΠΈ Ρ.Π΄.), Spring Boot 3, JWT, Redis, OpenApi, Mockito, Testcontainers
1) ΠΠΎΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
2) Π‘Π²ΠΎΠΈ ΡΡΠ΅Π½Π΄Ρ ΡΠΎ Π²ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ
3) ΠΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² Ρ ΠΎΠΏΡΡΠΎΠΌ ΠΏΠΎ 15 Π»Π΅Ρ Π² java
4) 100% ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°:
1) 72% ΡΠ΅Π±ΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 1 ΠΎΡΠ΅Ρ Π½Π° ΠΌΠΈΠ΄Π»Π° Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΊΡΡΡΠ°
2) ΠΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π±ΡΠ» 100%
3) Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΠ»Π°Π΄(Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°) ΡΠ΄Π΅Π»Π°Π» ΡΠ΅ΠΊΠΎΡΠ΄ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» 7 ΠΎΡΠ΅ΡΠΎΠ² Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΡΡΡΠ°, ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π° 250ΠΊ
4) 36% ΡΠ΅Π±ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅ ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΠ΅ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ
5) 64% ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎ ΡΠ΅Π±ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ»ΠΈ ΠΊΡΡΡΡ, Π½ΠΎ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Π½Ρ Π² ΡΠ΅Π±Π΅ ΠΈΠ»ΠΈ Π½Π΅ Π·Π½Π°ΡΡ ΠΌΠΈΠΊΡΡ
ΠΡΠ·ΡΠ²Ρ Π² ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΠ΅: https://www.youtube.com/watch?v=BSh0jK2GxqU&list=PLt91xr-Pp57QsW6CLBAosBjwc23kF6mW3
β ΠΠ»Π°Π²Π½ΡΠΉ ΠΎΡΠ·ΡΠ² ΠΏΠΎΡΠ»Π΅ ΠΊΡΡΡΠ° - Ρ ΡΡΠ°Π» ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ, Π½Π΅ Π±ΠΎΡΡΡ ΡΠΎΠ±Π΅ΡΠΎΠ² ΠΈ Π½Π΅ Π±ΠΎΡΡΡ ΠΈΡΠΏΡΡΠ°Π»ΠΊΠΈ!
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π·Π΄Π΅ΡΡ: https://javaguru.by/developer
ΠΡΠΎΠΌΠΎΠΊΠΎΠ΄: JAVAGURU_TG
ΠΠ΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄ΠΎ 08.10.2024
ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠ½Π΅: @AndreiMentorJava
ΠΡΠΈΠ²Π΅Ρ, ΠΠ½Π΄ΡΠ΅ΠΉ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌ! JAVAGURU_TG
ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠΆΡ ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΠ°?
1) ΠΠΈΡΠ°Π»ΠΈ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° spring boot
2) Π‘ΠΎΠ·Π²ΠΎΠ½ΠΈΡΡΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ (ΠΠ°ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ, ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΊΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ)
ΠΡΠ΄Ρ ΡΠ°Π΄ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ!
Please open Telegram to view this post
VIEW IN TELEGRAM
π6π4π₯3π2π±1