Конечные переменные внутри метода в Java
Как правило, конечная переменная должна быть инициализирована только один раз. Другие инициализации не допускаются. Если это так, то что происходит, когда окончательная переменная объявляется внутри метода. Предположим, что метод, который объявляется конечной переменной, вызывается/называется трижды, выражение декларации этой конечной переменной в методе выполняется трижды, а конечная переменная должна быть инициализирована трижды, что является незаконным, в частности, в Java по соглашению. В таком сценарии, как компилятор мог сохранить конечную переменную внутри метода?
Ответы
Ответ 1
Локальная переменная находится только в области действия для всего метода. Переменная может быть инициализирована один раз для каждой области метода.
Возможно, вы захотите прочитать в стеке вместо кучи, чтобы узнать, как JVM хранит данные для метода.
Ответ 2
Переменная метода находится в пределах жизненного цикла вызова метода.
Последний модификатор гарантирует, что при инициализации он не может быть повторно инициализирован в рамках метода этого вызова.
Итак, да, для вызова метода эта переменная становится окончательной.
Ответ 3
Окончательная декларация о переменной в методе гарантирует, что значение переменной не изменится в пределах области, в которой она объявлена, что в этом случае является только методом.