hello world ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄
ΠΠ·ΡΡΠ°Π΅ΠΌ C++. Π§Π°ΡΡΡ 1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C++, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡΠΈΡΡΡΡ ΠΈΡ ΠΏΠΈΡΠ°ΡΡ.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Ρ Π½ΡΠ»Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°ΡΡΡ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ Β«ΠΠ»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² C++Β», Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ³Ρ.
ΠΠ΅ ΠΏΡΠ³Π°ΠΉΡΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ C++, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π°.
ΠΠΈΡΠ΅Ρ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ³ΡΡ. ΠΠ΅ΡΡΠ°Π΅Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΄ΠΈΡ ΠΈ Π²ΡΠΏΡΡΠΊΠ°ΡΡ Π»Π°ΠΌΠΏΠΎΠ²ΡΠ΅ RPG.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ β ΡΡΠΎ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΆΠ΅Π»Π΅Π·Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈ Ρ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ Π½Π°Π΄ΠΏΠΈΡΠΈ Β«Hello, World!Β» Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ):
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΈΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½Ρ ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ Π±ΡΠ» ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π° Π½ΡΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π½Π°Π΄ΠΏΠΈΡΠΈ Β«Hello, World!Β»:
ΠΡΡ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π΄Π°? Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ, ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ β ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ.
ΠΡΠ»ΠΈ ΡΠ·ΡΠΊ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π΅Π³ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ½ΡΡΠ΅Π½ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ, ΡΠΎ β Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ. C++ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΠ³ΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ: ΠΎΠ½Π° ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΡΠΈΡΠ°Π½Ρ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π²ΡΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΡΠ²Π΅Ρ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠ°Π½ΠΈΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ β Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ°, Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΡ β Π²ΡΡ ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠΎΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΠ‘ Linux, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ img.jpg Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π² ΡΠ°ΠΉΠ» img.png.
Π‘Π΅ΠΉΡΠ°Ρ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Β» Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ β Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ»ΠΎΠ²Π° Β«ΡΡΠ½ΠΊΡΠΈΡΒ», Β«ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Β» ΠΈΠ»ΠΈ Β«ΠΌΠ΅ΡΠΎΠ΄Β».
ΠΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C++
ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΠΈΠ·ΡΡΠ°Π΅ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½ Π½Π°Π΄ΠΏΠΈΡΡ Β«Hello, World!Β».
Π C++ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ΄ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π·Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ repl.it. ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΠΆΠΌΠΈΡΠ΅ Start Coding, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ C++ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Create Repl.
Π£ Π²Π°Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°:
Π‘Π»Π΅Π²Π° β ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΡΠ΅Π½ΡΡΠ΅ β ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π³Π΄Π΅ ΡΠΆΠ΅ Π²Π²Π΅Π΄ΡΠ½ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΠΊΠΎΠ΄, Π° ΡΠΏΡΠ°Π²Π° β ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Run.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅
ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ²ΠΎΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Π― ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ G++, Π΅Π³ΠΎ ΠΈ Π²Π°ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, Π° Π² Π½Π΅ΠΉ β ΡΠ°ΠΉΠ» hello.cpp (ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π½Π° C++). ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ» ΠΈΠ· Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π±Π΅Π· ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ².
ΠΡΠΊΡΠΎΠΉΡΠ΅ hello.cpp Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ½ΠΎΡΠ° ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Sublime text ΠΈΠ»ΠΈ VS Code) ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½ΠΈΠΆΠ΅.
Windows | Linux |
---|---|
1. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Win + R, Π²Π²Π΅Π΄ΠΈΡΠ΅ cmd ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter. | 1. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Ctrl + Alt + t. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ, ΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. |
2. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd [ΠΏΡΡΡ]. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, cd projects\cpp1, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ c:\projects\cpp1. | 2. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd [ΠΏΡΡΡ]. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: cd /projects/cpp1 |
3. ΠΡΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π΄ΠΈΡΠΊΠ΅, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ: cd /D [Π΄ΠΈΡΠΊ:][ΠΏΡΡΡ]. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: cd /D d:\projects\cpp1 |
ΠΠ°ΡΠ΅ΠΌ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΊΠ°ΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ°ΠΉΠ»Π° hello.cpp ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠ°ΠΉΠ» hello (ΠΈΠ»ΠΈ hello.exe Π² Windows).
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Π² Π½Π΅ΠΉ.
ΠΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° C++
ΠΠ°ΡΠ½ΡΠΌ Ρ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ:
ΠΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠ‘, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π°ΠΌ ΠΈ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ β Π²ΡΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, iostream, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π·Π²ΡΠΊ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Hello World ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ «Hello World» ΠΈ ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅
ΠΠ΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΎΡΡ Π±Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Π·Π½Π°Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ)).
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ javap ΠΈΠ· JDK ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄.
Π ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠ°Π·Π±ΠΎΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM
ΠΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π»Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ JVM β The Java Virtual Machine Specification Π½Π° ΡΠ°ΠΉΡΠ΅ oracle
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ javac Main.java ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΠ½Π³
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ Π²ΠΈΠ΄Π΅ΡΡ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π½ΠΎ ΡΠ°ΠΌ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ½Π°ΡΠ΅:
Π‘ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ ΡΡΠΎ Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΈΠΌΠ΅Π΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΠΆΠ΅ΡΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JVM Chapter 4.1 The ClassFile Structure
Π’ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ β ΡΠ»Π΅Π²Π° ΡΠΊΠ°Π·Π°Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ Π² Π±Π°ΠΉΡΠ°Ρ , Π° ΡΠΏΡΠ°Π²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
Π Π°Π·Π±ΠΈΡΠ°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π² hexadecimal, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 4 Π±ΠΈΡΠ°, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π° Π΄Π²Π° Π±Π°ΠΉΡΠ° β 4 ΡΠΈΡΡΡ ΠΈ Π½Π° ΡΠ΅ΡΡΡΠ΅ Π±Π°ΠΉΡΠ° β 8 ΡΠΈΡΡ.
magic
minor_version, major_version
ΠΡΠΎ Π²Π΅ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ class ΡΠ°ΠΉΠ»Π°. ΠΡΠ»ΠΈ ΠΌΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ major_version M ΠΈ minor_version m, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ class ΡΠ°ΠΉΠ»Π° ΠΊΠ°ΠΊ M.m
Π‘Π΅ΠΉΡΠ°Ρ Ρ ΡΡΠ°Π·Ρ Π±ΡΠ΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «Hello World», ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ:
ΠΠ³ΠΎ ΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π² Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΡΠΆΠ΅ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ:
constant_pool_count
ΠΠ΄Π΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΏΡΠ»Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠΈΡΡΠΎΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅, ΡΠΎ Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»Π΅ΡΠΈΡ ΠΊ ΡΠ΅ΡΡΡΠΌ (ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ!).
Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ _Π²_ΠΏΡΠ»Π΅ + 1
constant_pool[]
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΡΠ»Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ:
Π’Π°Π±Π»ΠΈΡΠ° Ρ ΡΡΠ³Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Table 4.3 Constant pool tags
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠΊΠ°:
Constant Type | Value |
---|---|
CONSTANT_Class | 7 |
CONSTANT_Fieldref | 9 |
CONSTANT_Methodref | 10 |
CONSTANT_InterfaceMethodref | 11 |
CONSTANT_String | 8 |
CONSTANT_Integer | 3 |
CONSTANT_Float | 4 |
CONSTANT_Long | 5 |
CONSTANT_Double | 6 |
CONSTANT_NameAndType | 12 |
CONSTANT_Utf8 | 1 |
CONSTANT_MethodHandle | 15 |
CONSTANT_MethodType | 16 |
CONSTANT_InvokeDynamic | 18 |
ΠΠ°ΠΊ ΡΠ°Π½Π΅Π΅ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠΊΡΡΡΠ° CONSTANT_Class :
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°:
Π’ΡΡ Π²Π°ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΡ Π΄Π»ΠΈΠ½Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΡΠ°ΠΊ, ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΡΠ·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π°ΠΉΡ ΠΎΡΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ΄ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ 0a (10) β Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ CONSTANT_Methodref
Π‘ΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄Π»Ρ ΡΡΠ³Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ 4 Π±Π°ΠΉΡΠ° Π΄Π»Ρ class_index ΠΈ name_and_type_index
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΠΌΡ Π½Π°ΡΠ»ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ»Π° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ. ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅. Π‘ΠΌΠΎΡΡΠΈΠΌ, 09 β Π·Π½Π°ΡΠΈΡ ΡΠΈΠΏ CONSTANT_Fieldref
ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, CONSTANT_String :
ΠΡΠ΅ ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Chapter 4.4 The Constant Pool
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΡΠΎ Π·Π½Π°ΡΠ°Ρ ΡΠΈΠΏΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ info
ΠΡΠΎ ΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π² Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅:
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» ΠΈ ΡΡΡΠΎΠΊ.
ΠΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π³Π»Π°Π²Ρ 4.4.4, Π° ΠΌΡ ΠΏΠΎΠΊΠ° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π° ΠΏΠΎΠΊΠ° Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Hello World
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΠΎΡ ΡΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ°:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Ρ Hello World:
Π Π°Π·Π±ΠΈΡΠ°Ρ Π²Π΅ΡΡ ΠΏΡΠ» ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ»ΡΡΠΈΠΌ:
Π’Π°ΠΊΠΆΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ², ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ, Π²Π΅Π΄Ρ ΠΏΠΎ ΡΡΡΠΈ javap ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ Π΅Π³ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡΠ» ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠΏΠ°Ρ Π² ΠΏΡΠ»Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π² Chapter 4.4 The Constant Pool
ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ClassFile
access_flags
ΠΡΠΎ Π±ΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ° Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²
Flag Name | Value | Interpretation |
---|---|---|
ACC_PUBLIC | 0x0001 | Declared public ; may be accessed from outside its package. |
ACC_FINAL | 0x0010 | Declared final ; no subclasses allowed. |
ACC_SUPER | 0x0020 | Treat superclass methods specially when invoked by the invokespecial instruction. |
ACC_INTERFACE | 0x0200 | Is an interface, not a class. |
ACC_ABSTRACT | 0x0400 | Declared abstract ; must not be instantiated. |
ACC_SYNTHETIC | 0x1000 | Declared synthetic; not present in the source code. |
ACC_ANNOTATION | 0x2000 | Declared as an annotation type. |
ACC_ENUM | 0x4000 | Declared as an enum type. |
this_class
ΠΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ Π½Π° this ΠΊΠ»Π°ΡΡΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 5:
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ CONSTANT_Class_info
super_class
Π’ΠΎ Π΅ΡΡΡ Π² ΡΡΠΈΡ ΡΡΠ΅ΠΉΠΊΠ°Ρ ΡΠΊΠ°Π·Π°Π½ name_index ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ:
interfaces_count, fields_count
methods_count
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π₯ΠΎΡΡ ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡΠ΅, Π½ΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΈΡ Π΄Π²Π°. ΠΡΠΎΠΌΠ΅ main ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ΡΠ΅ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π²Π½ΠΎ Π΄Π²ΡΠΌ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
methods[]
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ΅ method_info ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π² Chapter 4.6 Methods
Π Π½Π°ΡΠ΅ΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅ (ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ, Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΡΠ°ΠΊ:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
access_flags
Π ΡΠ»ΠΎΠ²Ρ, ACC_VARARGS Π·Π΄Π΅ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π² ΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅, ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ String[] args Π²ΠΌΠ΅ΡΡΠΎ Stringβ¦ args, ΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° Π±Ρ Π½Π΅ Π±ΡΠ»ΠΎ
name_index
descriptor_index
ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΈΠΏ Π΅Π³ΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΡ.
Π’Π°ΠΊΠΆΠ΅, Π² JVM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ:
BaseType Character | Type | Interpretation |
---|---|---|
B | byte | signed byte |
C | char | Unicode character code point in the Basic Multilingual Plane, encoded with UTF-16 |
D | double | double-precision floating-point value |
F | float | single-precision floating-point value |
I | int | integer |
J | long | long integer |
L ClassName ; | reference | an instance of class ClassName |
S | short | signed short |
Z | boolean | true or false |
[ | reference | one array dimension |
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄:
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅
ΠΠ°Π»Π΅Π΅, ΠΈΠ΄ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π°, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅Π³Π΄Π°, ΠΈΠ΄Π΅Ρ Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ attributes_count
ΠΠ°ΡΠ΅ΠΌ ΡΠ°ΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π² Chapter 4.7 Attributes
attribute_name_index
attribute_length
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π»ΠΈΠ½Ρ Π°ΡΡΠΈΠ±ΡΡΠ°, Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Ρ attribute_name_index ΠΈ attribute_length
info
max_stack
ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΈΠΌΡ ΡΡΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈ max. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ° Π½ΡΠΆΠ½ΡΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡ, ΡΡΠΎ ΠΈΠΌΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, JVM Π²ΡΠ΄Π΅Π»ΠΈΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΡΠ΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
max_locals
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π² Mastering Java Bytecode at the Core of the JVM ΠΈΠ»ΠΈ Π² ΡΠΎΠΌ ΠΆΠ΅ JVM Internals
code_length
Π Π°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°
code[]
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ΄ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. Π’Π°Π±Π»ΠΈΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ optcode ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ β Java bytecode instruction listings ΠΈΠ»ΠΈ Π² ΡΠ°ΠΌΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π½Π°Ρ ΠΊΠΎΠ΄:
ΠΡΠ΅ΠΌ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ:
Π’Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ: Chapter 4.10.1.9. Type Checking Instructions
exception_table_length
ΠΠ°Π΄Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅ exception_table. Π£ Π½Π°Ρ ΠΏΠΎΠΊΠ° Π½Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ. ΠΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Chapter 4.7.3 The Code Attribute
exception_table[]
ΠΠΌΠ΅Π΅Ρ Π²ΠΎΡ ΡΠ°ΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ:
attributes_count
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π² Code
attributes[]
ΠΡΡΠΈΠ±ΡΡΡ, ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°ΠΌΠΈ.
Π‘ΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ
ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΡΠ° ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ Π½Π΅ΠΉ.
Π‘ΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ΄Π΅ΡΡ Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Byte Code Engineering Library (BCEL) ΠΎΡ Apache Commons.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°:
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Jasmin) Π±Π°ΠΉΡ-ΠΊΠΎΠ΄.
ΠΠ°ΡΠΎΡΠΊΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π’Π°ΠΊΠΆΠ΅, Ρ ΡΠ΄Π΅Π»ΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Jasmin. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π½Π΅ Π·Π½Π°Ρ, ΡΠ΅ΠΌ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Ρ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π±ΠΎΡΡ JVM Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅:
ΠΠΎΡ ΠΌΡ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΡ Hello World
ΠΠΈΡΡΠΈΠ½Π³ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΠΌΠΎΠ΅ΠΌ Π³ΠΈΡΡΠ΅: gist.github
ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΈΠ»ΠΈ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ .
Hello world ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ±ΠΈΡΠ΅Π»ΠΈ Π½Π΅ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΎΠ²Π»Π°Π΄Π΅Π½ΠΈΠΈ ΠΠΠΠ‘ΠΠΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠΎ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΊ Π±Π°ΡΡΠ΅ΡΡ Β«ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°Β». ΠΠ°ΠΊ ΡΡΠΎ Π½ΠΈ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ. ΠΡΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ, ΠΏΡΠΎΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ Π·Π½Π°ΡΡ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π² ΠΠΠΠ‘ΠΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ (ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΠ°ΠΌ ΠΠ°Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡ), ΡΠΎ Π·Π΄Π΅ΡΡ ΠΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΎΠ΄ΠΈΠ½ Π½Π° ΠΎΠ΄ΠΈΠ½, ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠ± ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ.
ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π²ΡΠ΄Π΅Π»ΠΈΠΌ Π΄Π»Ρ Π½Π΅Π΅ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΠΡ ΡΠΈΡΠ°Π»ΠΈ Π½Π°ΡΡ ΠΊΠ½ΠΈΠ³Ρ «ΠΠΎΠ»ΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΠ°ΡΠ΅Π³ΠΎ Β«ZX-Spectrum`Π°Β», ΡΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΠΠΠ‘ΠΠΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΎΡΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PROG ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π°Π΄ΡΠ΅ΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ RAMTOP. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠ΄Π°Ρ , Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π°Π΄ΡΠ΅ΡΠ° 30000. ΠΠ°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ CLEAR 29999. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ RAMTOP Π² 29999 ΠΈ ΠΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΡΡΠΈ ΠΈΠ· ΠΠΠΠ‘ΠΠΠ°. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΡ Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ NEW, ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π²ΡΡΠ΅ RAMTOP, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ°ΠΆΠ΅Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°ΠΉΡΠ΅ Π΄Π²Π΅ ΠΏΡΡΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ΄Π½Ρ Π·Π° Π΄ΡΡΠ³ΠΎΠΉ:
ΠΡΠ»ΠΈ Π²ΡΠ΅, ΡΡΠΎ ΠΡ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ, ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΎ ΠΡ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠ΄Π°Ρ . ΠΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ Π² ΡΡΠΎΠΌ ΡΡΡΡ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ Π½Π΅ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Z-80.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π²ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΡΠ΅ ΠΆΠ΅ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π»Π°. ΠΡΠΎΡΠ΅ΡΡΠΎΡ Z-80 ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π° β Β«ΠΒ», Β«ΠΒ», Β«Π‘Β» ΠΈ Ρ.Π΄. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 0 Π΄ΠΎ 255 (Ρ.Π΅. ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ).
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΡΠ·Ρ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ, Π² Ρ.Ρ. ΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ.
Java Π±Π°ΠΉΡΠΊΠΎΠ΄ Β«Hello worldΒ»
ΠΠ° Ρ
Π°Π±ΡΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ java Π±Π°ΠΉΡΠΊΠΎΠ΄. Π― ΡΠ΅ΡΠΈΠ» Π΅Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈ Π² ΠΌΠ΅ΡΡ ΡΠΈΠ» ΡΠ°Π·Π²ΠΈΡΡ ΡΠ΅ΠΌΡ. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java. Π ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ Β«Hello worldΒ»?
ΠΠ»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Ρ ΡΠΎΠ·Π΄Π°Π» Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ src, ΠΊΡΠ΄Π° Π² ΠΏΠ°ΠΏΠΊΡ hello ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΡΠ°ΠΉΠ» App.java:
Π‘ΠΊΠΎΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ classes Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΠ°ΠΉΠ» App.class ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ java ΠΈ class ΡΠ°ΠΉΠ»ΠΎΠ².
App.java 139B
App.class 418B
ΠΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ. ΠΠ½Π΅ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅. ΠΠΎΠΏΡΡΠ°ΡΡΡ ΠΎΡΠΊΡΡΡΡ class ΡΠ°ΠΉΠ»:
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π΄Π»Ρ Java ΠΊΠΎΠ΄Π°. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° class ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΠΎ 4 Π±Π°ΠΉΡΠ° Π΄Π»Ρ magic, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π°.
minor version β ΠΠΈΠ½ΠΎΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ
major version β 2 Π±Π°ΠΉΡΠ° ΠΏΠΎΠ΄ ΠΌΠ°ΠΆΠΎΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ.
Π‘ΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ minor ΠΈ major version Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ J2SE 8.
ΠΡΠΈ Π΄Π²Π° Π±Π°ΠΉΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ constant_pool_count ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ constant_pool. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ count ΡΠ°Π²Π΅Π½ 29, Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ»Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ 28. ΠΠ°Π»ΡΡΠ΅ ΠΈΠ΄ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΈΠ΄Π°:
cp_info <
u1 tag; // 1 Π±Π°ΠΉΡ Π½Π° ΡΠ΅Π³
u1 info[]; // ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ
>
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² constant_pool.
ΠΡΠΎΡ ΡΠ΅Π³ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ CONSTANT_Methodref, Π° Π·Π½Π°ΡΠΈΡ Π΄Π°Π»ΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅:
CONSTANT_Methodref_info <
u1 tag;
u2 class_index;
u2 name_and_type_index;
>
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ:
class_index, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° 6 ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² constant_pool
name_and_type_index, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° 15 ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² constant_pool
ΠΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ° ΡΡΡΠ»ΠΊΠ° ΠΈ ΠΌΡ ΠΈΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅:
ΠΡΠΎ CONSTANT_Fieldref, Π° Π·Π½Π°ΡΠΈΡ Π΄Π°Π»ΡΡΠ΅ ΠΈΡΠ΅ΠΌ:
CONSTANT_Fieldref_info <
u1 tag;
u2 class_index;
u2 name_and_type_index;
>
Π ΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Ρ ΠΎΡΡ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΡΡΠΎ ΡΡΠΎ Π·Π° ΠΏΠΎΠ»Π΅, Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Ρ Π²ΡΠΎΠ΄Π΅ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ».
class_index Π² 16 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
name_and_type_index Π² 17 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
tag Π΄Π»Ρ CONSTANT_String
ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π»Π΅ΠΆΠΈΡ Π² 18 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅:
Tag ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄:
ΠΊΠ»Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π² 19 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
a Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΈΠΏ Π² 20 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅:
5-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Tag Π΄Π»Ρ CONSTANT_Class
Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² 21 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
6-ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
CΠ½ΠΎΠ²Π° CONSTANT_Class
c Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² 22 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
ΠΠ°ΠΊ ΠΌΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ 1-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ constant_pool ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ.
7-ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
tag, CONSTANT_Utf8, ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΡΠΊΠ°
ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ:
CONSTANT_Utf8_info <
u1 tag;
u2 length;
u1 bytes[length];
>
Π’ΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΡΠΎΡΠΊΠΈ 6 Π±Π°ΠΉΡ:
ΠΡΠΎ ΠΎΡΠΎΠ±ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ.
ΡΡΡΠΎΡΠΊΠ° Π΄Π»ΠΈΠ½Ρ 3 β «()V»:
ΠΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΏΠΎΠΌΡΠ½ΡΡ Π² ΡΠ΅Π΄ΡΠΌΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅.
9-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
CONSTANT_Utf8
10-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Π‘ΡΡΠΎΠΊΠ° LineNumberTable
15-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
Tag, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ CONSTANT_NameAndType
Π° Π·Π½Π°ΡΠΈΡ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ
CONSTANT_NameAndType_info <
u1 tag;
u2 name_index;
u2 descriptor_index;
>
ΠΈ ΡΠΎΠ³Π΄Π°:
ΡΡΡΠ»ΠΊΠ° Π½Π° 7 ΡΠ»Π΅ΠΌΠ΅Π½Ρ
ccΡΠ»ΠΊΠ° Π½Π° 8 ΡΠ»Π΅ΠΌΠ΅Π½Ρ
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠ»Π°Π»ΡΡ Π½Π° ΡΡΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΉΡΠΈ Π² 22 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅.
16-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Tag, Π΄Π»Ρ CONSTANT_Class
c Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² 23 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
17-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Tag, CONSTANT_NameAndType, ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° 24 ΠΈ 25 ΡΠ»Π΅ΠΌΠ΅Π½Ρ constant_pool
18-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Π£ΡΠ° Β«Hello world!Β»
19-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Tag, Π΄Π»Ρ CONSTANT_class c Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² 25-ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
20-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Tag CONSTANT_NameAndType cΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° 27 ΠΈ 28 ΡΠ»Π΅ΠΌΠ΅Π½Ρ
25-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Β«Ljava/io/PrintStream;Β»
26-ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
Β«java/io/PrintStreamΒ»
methods_count Ρ Π½Π°Ρ 2 ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ main:
Method 1 β Constructor
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π°ΡΡΡΠΈΠ±ΡΡΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° code[code_length], ΡΠ°Π·Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΠΌΠ°:
ΠΡΡΡΠΈΠ±ΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°
Attribute 1 ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° main
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ΠΎ ΠΈ ΠΈΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Ρ ΠΏΠΎ-Π±Π°ΠΉΡΠΎΠ²ΡΠΌ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ class ΡΠ°ΠΉΠ»Π°, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ Ρ Π²ΡΠΏΠΈΡΠ°Π» ΡΡΠΊΠ°ΠΌΠΈ:
Π Π²ΠΎΡ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π±ΠΎΡΠ° class ΡΠ°ΠΉΠ»Π°: