Java Guru πŸ€“
13.2K subscribers
891 photos
16 videos
760 links
Канал с вопросами ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с собСсСдований!

По сотрудничСству ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅: @NadikaKir

Канал Π² ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ РКН: https://vk.cc/cJrSQZ

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Какая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ 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.
πŸ‘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.
πŸ‘11πŸ”₯2πŸ₯°1😁1
πŸ‘©β€πŸ’» Java Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° - Ρ‚ΠΎΠΏΠΎΠ²ΠΎΠ΅ сообщСство Senior Java Developer, Π³Π΄Π΅ ΠΎΠ½ дСлится совСтами, ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠ°ΠΌΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ стали Ρ‚ΠΎΠΏΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ!

πŸ‘©β€πŸ’» Android Developer - ΠΊΠ°Π½Π°Π» для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²! Π‘Ρ‚Π°Ρ‚ΡŒΠΈ, вопросы ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ с собСсСдований, Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘©β€πŸ’» Kotlin Developer - самый Ρ‚ΠΎΠΏΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» для ΠΊΠΎΡ‚Π»ΠΈΠ½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°!

πŸ“• Книги для 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().
πŸ‘11πŸ”₯3
This media is not supported in your browser
VIEW IN TELEGRAM
ΠšΠ°ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΌΠΈΡ‚Π°ΠΏ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ свой кСйс для обсуТдСния ΠΏΠΎ Ρ‚Ρ€Π΅ΠΌ Ρ‚Ρ€Π΅ΠΊΠ°ΠΌ: iOS, Android, Flutter.

Участники ΠΌΠΈΡ‚Π°ΠΏΠ° β€” Ρ‚Π΅Ρ…Π»ΠΈΠ΄Ρ‹, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ ЯндСкс Go ΠΈ ЯндСкс ΠŸΡ€ΠΎ. Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²Π΅Ρ‡Π΅Ρ€Π° afterparty β€” Π½Π΅Ρ‚Π²ΠΎΡ€ΠΊΠΈΠ½Π³, настолки, вкусная Π΅Π΄Π° ΠΈ Π½Π°ΠΏΠΈΡ‚ΠΊΠΈ.

ΠœΠ΅ΡΡ‚ΠΎ встрСчи: Москва-Π‘ΠΈΡ‚ΠΈ, башня «Око»
Π”Π°Ρ‚Π° ΠΈ врСмя: 15 фСвраля, 18:30

БСсплатно. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ мСст ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. РСгистрация ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅
πŸ‘7
Какой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°?
πŸ‘16❀3
Какой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°?
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
πŸ”₯5β˜ƒ2
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ этот ΠΊΠΎΠ΄?
πŸ”₯6πŸ‘3πŸŽ‰2🀣1
Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΎΠ±Ρ…ΠΎΠ΄ конструктора?

Π­Ρ‚ΠΎΡ‚ пост – Π½Π΅ рСкомСндация. ОписанноС здСсь ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ основаниС ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ (Ссли ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅).

ДСсСриализация – полагаСтся, Ρ‡Ρ‚ΠΎ сСриализационная Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ сконструирована, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ экзСмпляр просто восстанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° readObject. ВызываСтся конструктор блиТайшСго Π½Π΅ serializable родитСля.

Π’Π½ΡƒΡ‚Ρ€ΠΈ дСсСриализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ReflectionFactory.newConstructorForSerialization ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° sun.reflect – ΠΌΠ΅Ρ‚ΠΎΠ΄ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ) конструктором. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ всё ΠΆΠ΅ вызываСтся, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ конструктор класса Object.

Unsafe.allocateInstance – нСпосрСдствСнно создаСт экзСмпляр Π½Π΅ вызывая конструктор, Π½ΠΈΡ‡Π΅Π³ΠΎ лишнСго.

Оба способа ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ Π²Ρ‹Π·Π²Π°Π½ Π½ΠΈ конструктор, Π½ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ. ВсС Ρ‡Π»Π΅Π½Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ со значСниями ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (null, 0, false). Однако для final поля Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ считаСтся ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΠ½ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ установлСно.

ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ этими грязными Ρ…Π°ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ sun.* Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ API Java, ΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅ Π²ΠΎ всСх вСрсиях Java.
πŸ‘13πŸ”₯3πŸ€”2
Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²Ρ‹Π²Π΅Π» "I Love Programming Tests" ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ?
πŸ‘9πŸ”₯4
πŸ”— Как ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большим количСство сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java?

Π£Π·Π½Π°ΠΉΡ‚Π΅ Π½Π° бСсплатном практичСском ΡƒΡ€ΠΎΠΊΠ΅ Β«Java NIOΒ» ΠΎΡ‚ OTUS ΠΈ АлСксандра Ѐисунова β€” Senior Kotlin Developer Π² SSP Software Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π’Π’Π‘.

На Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ Π²Ρ‹:

β€” ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Java NIO ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ Java IO
β€” Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ возмоТности Java NIO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сильно ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Тизнь ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ;
β€” ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Java Core ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° свои вопросы.

ВстрСчаСмся 15 фСвраля Π² 20:00 мск.
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π² ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ запуска курса Β«Java Developer. ProfessionalΒ».

➑️ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ тСст прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ запись: https://otus.pw/u99H/

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please 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 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ Π² Π΅Π³ΠΎ манифСстС.
πŸ‘9πŸ”₯3
Как ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄?

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄ – Π°Π½Π°Π»ΠΎΠ³ машинного ΠΊΠΎΠ΄Π° для 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
❀5πŸ‘2😁1
ΠžΡ‚ Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ NoSuchMethodError?

Как ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пытаСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ сущСствуСт. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС Π΅Ρ‰Π΅ Π½Π° этапС компиляции. Но Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ становится извСстно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния, ΠΈ Ρ‚ΠΎΠ³Π΄Π° выбрасываСтся это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… ситуаций Π΄Π²Π°. Π›ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈ частично ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½; Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нСсовмСстима с внСшнСй Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия jar-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² classpath.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ NoSuchMethodError наслСдуСтся ΠΎΡ‚ LinkageError. ВсС Ρ‚Π°ΠΊΠΈΠ΅ ошибки – ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ нСсовмСстимых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ послС компиляции класса.

НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ с NoSuchMethodException – ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ случаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Reflection API. Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Error, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.
πŸ‘13πŸ₯°3πŸ”₯2πŸŽ‰1
✨ ΠžΡ‚ΡƒΡ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ 15 фСвраля Π² 20:00 мск Π½Π° бСсплатный Π²Π΅Π±ΠΈΠ½Π°Ρ€ «Роль Apache Kafka Π² Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΒ».

Π’Π΅Π±ΠΈΠ½Π°Ρ€ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-курса "Observability: ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, трСйсинг".

➑️ РСгистрация Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€: https://vk.cc/cusU94

На Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ:
βœ… Ρ€ΠΎΠ»ΡŒ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° Π² Kafka;
βœ… ΠΊΠ°ΠΊ Kafka интСгрируСтся Π² ΠΎΠ±Ρ‰ΡƒΡŽ систСму сбора Π΄Π°Π½Π½Ρ‹Ρ…;
βœ… индСксы Π² Kafka;
βœ… взаимодСйствиС с ΠΎΠ±Ρ‰ΠΈΠΌ стСком логирования.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 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.
πŸ‘21❀1