В настоящее время я готовлю S (O) CJP с книгой Sierra & Bates.
Что касается внутренних классов (локальный или анонимный метод), они говорят, что мы не можем получить доступ к локальным переменным, потому что они живут в стеке, в то время как класс живет в куче и может быть возвращен методом, а затем попытаться получить доступ к этим переменным. которые находятся в стеке, но больше не существуют, так как метод завершился ...
Как мы все знаем, мы можем обойти это, используя ключевое слово final. Это то, что они говорят в книге, но на самом деле они не объясняют, каков эффект этого ключевого слова final ... Насколько я знаю, использование ключевого слова final в локальной переменной метода не делает его живым в куче. .. Итак, как класс сможет получить доступ к конечной переменной, которая все еще находится в стеке, когда стека больше не может быть ???
Я предполагаю, что внутри внутреннего класса должна быть какая-то «копия» этой последней локальной переменной. Поскольку значение не может измениться, почему бы не продублировать эту информацию ... Может ли кто-нибудь подтвердить это или сказать мне, что я что-то упускаю?