Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Ѐилософия Java3Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 30

Автор Π‘Ρ€ΡŽΡ ЭккСль

Π’ описанном здСсь ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сбора мусора, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ JVM обращаСтся с Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ согласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ дСйствий. Один ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² называСтся ос-Ρ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ-ΠΈ-ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Бмысл Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° понятСн: Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ приостанавливаСтся (эта схСма Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сборку мусора Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅). Π—Π°Ρ‚Π΅ΠΌ всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Β«ΠΆΠΈΠ²Ρ‹Π΅Β» (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡƒΡ‡ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π° «мусор» остаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ. ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ ΠΎΠ½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, высвобоТдая пространство Π² ΠΊΡƒΡ‡Π΅ {ΠΈ позволяя ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π½Π° Π½ΠΎΠ²ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ простым ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ указатСля).

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСмСщаСтся ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅, всС ссылки, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. Бсылки Π² стСкС ΠΈΠ»ΠΈ Π² статичСском Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ сразу, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ссылки Π½Π° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ·ΠΆΠ΅, Π²ΠΎ врСмя ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Β«ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°Β». Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ происходит ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нахоТдСния ссылок.

БущСствуСт Π΄Π²Π° Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Β«ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ сборщики» ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² систСмС сущСствуСт Π΄Π²Π΅ ΠΊΡƒΡ‡ΠΈ, ΠΈ Π²Ρ‹ Β«ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΏΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅Β» ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎ Ρ‚ΡƒΠ΄Π°, Ρ‚ΠΎ сюда ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΡƒΡ‡Π°ΠΌΠΈ, ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° памяти тратится Π²ΠΏΡƒΡΡ‚ΡƒΡŽ. НСкоторыС JVM ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, выдСляя ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΊΡƒΡ‡ΠΈ нСбольшими порциями ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, Π° Π·Π°Ρ‚Π΅ΠΌ просто копируя ΠΎΠ΄Π½Ρƒ ΠΏΠΎΡ€Ρ†ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ вопрос β€” ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Ρ„Π°Π·Ρƒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΠ½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΠΈΠ±ΠΎ становится Β«Π±Π΅Π·ΠΎΡ‚Ρ…ΠΎΠ΄Π½ΠΎΠΉΒ», Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ «мусора». НСсмотря Π½Π° это, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ сборщик всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ пСрСстанСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. НСкоторыС JVM ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Β«ΠΎΡ‚Ρ…ΠΎΠ΄ΠΎΠ²Β» Π½Π΅ появляСтся, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ схСму («адаптивная» Ρ‡Π°ΡΡ‚ΡŒ). Π­Ρ‚Π° схСма называСтся ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒ (ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ), ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Ρ„ΠΈΡ€ΠΌΡ‹ Sun. Для повсСмСстного использования Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Β«ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒΒ» чСрСсчур ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»Π΅Π½, Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° извСстно, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ «мусора» ΠΌΠ°Π»ΠΎ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚, ΠΎΠ½ выполняСтся быстро.

Π‘Ρ…Π΅ΠΌΠ° Β«ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡƒ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° начинаСтся со стСка ΠΈ статичСского Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, послС Ρ‡Π΅Π³ΠΎ постСпСнно ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС ссылки Π½Π° Β«ΠΆΠΈΠ²Ρ‹Π΅Β» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Однако ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ помСчаСтся Ρ„Π»Π°Π³ΠΎΠΌ, Π½ΠΎ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ сущСствованиС. Β«Π£Π±ΠΎΡ€ΠΊΠ°Β» происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ. ВсС Β«ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅Β» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ этом ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Но копирования Π½Π΅ происходит, ΠΈ Ссли сборщик Ρ€Π΅ΡˆΠΈΡ‚ Β«ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒΒ» Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ, Ρ‚ΠΎ дСлаСтся это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅.

ИдСя Β«ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ-ΠΈ-ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» нСсовмСстима с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ процСссом сборки мусора; Π² Π½Π°Ρ‡Π°Π»Π΅ ΡƒΠ±ΠΎΡ€ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° останавливаСтся. Π’ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Ρ„ΠΈΡ€ΠΌΡ‹ Sun ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ заявлСний ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка мусора являСтся Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ процСссом с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π½ΠΎ оказываСтся, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… рСализациях Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Sun) Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ сущСствуСт. ВмСсто этого сборщик мусора ΠΎΡ‚ Sun Π½Π°Ρ‡ΠΈΠ½Π°Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти. Π‘Ρ…Π΅ΠΌΠ° Β«ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒΒ» Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остановки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π² описываСмой здСсь Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΏΠ°ΠΌΡΡ‚ΡŒ выдСляСтся большими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈ создании большого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅ΠΌΡƒ выдСляСтся собствСнный Π±Π»ΠΎΠΊ. Бтрогая рСализация схСмы Β«ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ-ΠΈ-ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· исходной ΠΊΡƒΡ‡ΠΈ копировался Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ освобоТдСниСм памяти старой ΠΊΡƒΡ‡ΠΈ, Ρ‡Ρ‚ΠΎ сопряТСно с большими пСрСмСщСниями памяти. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ памяти БМ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСзанятыС Π±Π»ΠΎΠΊΠΈ для копирования ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… накоплСния. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° имССтся счСтчик ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, слСдящий Π·Π° использованиСм Π±Π»ΠΎΠΊΠ°. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ситуации Β«ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡΒ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы послС послСднСй сборки мусора; для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика увСличиваСтся ΠΏΡ€ΠΈ создании Π²Π½Π΅ΡˆΠ½ΠΈΡ… ссылок. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ годится для стандартной ситуации β€” создания мноТСства Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ сроком ΠΆΠΈΠ·Π½ΠΈ. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ производится полная очистка β€” большиС Π±Π»ΠΎΠΊΠΈ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΡ… счСтчики), Π½ΠΎ Π±Π»ΠΎΠΊΠΈ с малСнькими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Β«ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡΒ». Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина постоянно слСдит Π·Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ сборки мусора ΠΈ, Ссли ΠΎΠ½Π° становится нСэффСктивной, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° схСму Β«ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒΒ». Аналогично JVM слСдит Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ схСмы Β«ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ-ΠΈ-ΡƒΠ±Ρ€Π°Ρ‚ΡŒΒ», ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΡƒΡ‡Π° становится излишнС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ, БМ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ схСмС Β«ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ-ΠΈ-ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ». Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² JVM. НаиболСС Π²Π°ΠΆΠ½Ρ‹Π΅ β€” это дСйствия Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся компиляциСй Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» (Just-In-Time, JIT). ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ JIT частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Β«Ρ€ΠΎΠ΄Π½ΠΎΠΉΒ» ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, благодаря Ρ‡Π΅ΠΌΡƒ послСдний Π½Π΅ нуТдаСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ класса (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это происходит ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° этого класса) систСма Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ» .class, ΠΈ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π° пСрСносится Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ просто провСсти ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ JIT для ΠΊΠΎΠ΄Π° класса, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° нСдостатка: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это Π·Π°ΠΉΠΌΠ΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ вмСстС с ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, увСличиваСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ исполняСмого Ρ„Π°ΠΉΠ»Π° (Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС мСста Π² сравнСнии с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ JIT), Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠ΅ памяти, ΠΈ это Ρ‚ΠΎΠΆΠ΅ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ схСма ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ вычислСния ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ JIT компилируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это станСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ исполняСтся, Π½Π΅ компилируСтся JIT. Новая тСхнология Java HotSpot, встроСнная Π² послСдниС вСрсии JDK, Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ выполняСтся ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ быстрСС ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Ρ‡Π»Π΅Π½ΠΎΠ² класса

Java ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… использованиСм. Π’ случаС с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ локально, Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, эта гарантия прСдоставляСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅ сообщСния ΠΎΠ± ошибкС. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ использования Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°

void f() { int i;

i++. // Ошибка - пСрСмСнная i Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°

}

Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ пСрСмСнная i Π½Π΅ Π±Ρ‹Π»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, компилятор ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ данная ситуация большС ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ программиста, ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ лишь скрыл Π±Ρ‹ Π΅Π΅. Π—Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ программиста ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Если ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ являСтся ΠΏΠΎΠ»Π΅ΠΌ класса, Ρ‚ΠΎ ΠΈ способ обращСния с Π½ΠΈΠΌ нСсколько ΠΈΠ½ΠΎΠΉ. Как Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 2, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ полю класса Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ этот Ρ„Π°ΠΊΡ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния:

//. initialization/InitialValues java

// Π’Ρ‹Π²ΠΎΠ΄ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, присваиваСмых ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

import static net mindview util print *;

public class InitialValues { boolean t; char c, byte b; short s: int i;

float f; double d,

InitialValues reference; void printlnitialValuesO { printC'Tnn Π΄Π°Π½Π½Ρ‹Ρ… print("boolean printC'char print("byte printCshort printC'int print("long print("float print("double print("reference

ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"). " + t);

+ с + + b); + s); + i);

+ 1): + f).

+ d).

+ reference).

public static void main(String[] args) {

InitialValues iv = new InitialValuesO.

iv.printlnitialValuesO;

/* Π’ΡƒΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚-

new InitialValuesO printlnitialValuesO; */

} /* Output-Π’ΠΈΠΏ'Π΄Π°Π½Π½Ρ‹Ρ… boolean char byte short int long float double reference *///-

ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

false [ ]

0

0

0

0

0.0

0.0

null

ΠŸΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ β€” Π΄Π°ΠΆΠ΅ Ссли значСния явно Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΎΠ½ΠΈ автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. (Бимвольной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ char присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ноль, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отобраТаСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°.) По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π½Π΅Ρ‚ опасности случайного использования Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Если ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, опрСдСлямая Π²Π½ΡƒΡ‚Ρ€ΠΈ класса, Π½Π΅ связываСтся с Π½ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‚ΠΎ Π΅ΠΉ автоматичСски присваиваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null (ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Java).

Явная инициализация

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Π°ΠΌ понадобится ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅? ΠŸΡ€ΠΎΡ‰Π΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это прямым присваиваниСм этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ значСния Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π΅Π΅ объявлСния Π² классС. (Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π‘++ Ρ‚Π°ΠΊΠΎΠ΅ дСйствиС Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ, хотя Π΅Π³ΠΎ постоянно ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ.) Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ полям ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ класса InitialValues присвоСны Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния:

//β€’ initialization/InitialValues2.java

// Π―Π²Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

public class Ini ti alValues2 {

boolean bool = true; char ch = 'x'; byte b = 47; short s = Oxff; int i = 999; long Ing = 1, float f = 3.14f; double d = 3.14159; } ///:-