Эти переменные действительно будут собраны сборщиком мусора, как только GC запустится при выходе из метода.
Ключевое слово final
действительно есть как подсказка: эта переменная создается один раз, вам не следует трогатьэто в теле самого метода.Точно так же объявление параметров метода final
запрещает их повторное использование (что, imho, хорошо).
Обратите внимание, однако, что ключевое слово влияет только на ссылку на объект: это не означает, что методы на этой ссылке на объект, которыеизменение его внутреннего состояния перестанет работать (типичный пример: setters).
Еще одно примечание: когда вы опускаете ключевое слово final
и не изменяете переменную в теле вашего метода, JVMдостаточно умен, чтобы оптимизировать этот случай.Таким образом, вы можете опустить это.Независимо от того, используете ли вы его, и где вы его используете, это вопрос вкуса / стиля кодирования.
И, наконец, рекомендуется объявить public static
переменные как окончательные: в противном случае все может изменить это.!Думайте о строковых константах и т. Д.