Выніковыя зменныя ўнутры метаду ў Java

Як правіла, канчатковая пераменная павінна быць ініцыялізаваны толькі адзін раз. Ніякая іншая ініцыялізацыя не дапускаецца. Калі гэта так, то, што адбываецца, калі канчатковая пераменная аб'яўлена ўнутры метаду. Выкажу здагадку, што метад, які канчатковыя пераменная аб'яўлена ў выкліку/выклікаецца тройчы, дэкларацыя зацвярджэнне гэтага канчатковых пераменным ў метадзе выконваюцца тройчы, і канчатковыя зменныя павінны быць ініцыялізаваны тройчы, які з'яўляецца незаконным, адмыслова ў Java па пагадненні. У такім выпадку, як жа кампілятар захаваць канчатковы зменнай ўнутры метаду?

15
<Код>, які з'яўляецца незаконным, адмыслова ў Java па пагадненні - не, гэта не так.
дададзена аўтар user unknown, крыніца
Ну, што адбываецца, калі вы <я> паспрабаваць што?
дададзена аўтар Brian Roach, крыніца
Гэта рэальны пытанне ... нават калі [неверагодна] дурному [і сам выяўляем з твіст полуправда ў ім].
дададзена аўтар user166390, крыніца
Ніякіх праблем, але такое пытанне са мной не здарылася.
дададзена аўтар Bhavesh, крыніца

3 адказы

Лакальныя пераменны толькі ў галіне бачнасці працягласці метады. Пераменная можа быць ініцыялізаваны адзін раз для кожнай вобласці метаду.

Вы можаце прачытаць на стэк супраць кучы, каб даведацца пра тое, як JVM захоўвае дадзеныя для метаду.

16
дададзена
але што жыццё канчатковым, калі я абвяшчаю растравага выявы ў якасці канчатковага ў метадзе, так гэта яго жыццё сканчаецца, калі які выклікае метад з'яўляецца больш або скончыць яго жыццё з пакетам ці канец праграмы
дададзена аўтар AHF, крыніца

Пераменная метаду вобласць бачнасці ў межах метаду выкліку жыццёвага цыклу.

Канчатковы мадыфікатара гарантуе, што пры ініцыялізацыі, ён не можа быць паўторна ініцыялізаваны ў рамках метаду <моцнага> гэтага выкліку .

Так што так, ў выкліку метаду, што пераменная будзе канчатковым.

15
дададзена
што адбудзецца, калі метад з'яўляецца статычным?
дададзена аўтар Avinash Agrawal, крыніца

Выніковая дэкларацыя па зменнай ўнутры метаду гарантуе, што гэтае значэньне ня будзе змяняцца ў межах аб'ёму, у якім яна абвешчаная, які ў дадзеным выпадку з'яўляецца толькі метад.

5
дададзена