局部内部类的final问题

 1 /*
 2 局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final的】。
 3 
 4 备注:从Java 8+开始,只要局部变量事实不变,那么final关键字可以省略。
 5 
 6 原因:
 7 1. new出来的对象在堆内存当中。
 8 2. 局部变量是跟着方法走的,在栈内存当中。
 9 3. 方法运行结束之后,立刻出栈,局部变量就会立刻消失。
10 4. 但是new出来的对象会在堆当中持续存在,直到垃圾回收消失。
11  */
12 public class MyOuter {
13 
14     public void methodOuter() {
15         int num = 10; // 所在方法的局部变量
16 
17         class MyInner {
18             public void methodInner() {
19                 System.out.println(num);
20             }
21         }
22     }
23 
24 }

 

posted @ 2020-12-13 19:52  Oooooooa  阅读(97)  评论(0)    收藏  举报