局部内部类访问局部变量的问题

局部内部类访问局部变量的注意事项:

 局部变量必须用final修饰!

为什么?
   因为局部变量是随着方法的调用而调用,随着调用完毕而消失

  但是我们调用内部类时创建的对象依旧在堆内存中,并没有被回收,如果访问的局部变量不是用final修饰的,就是当方法调用完毕后,依旧存在于堆内存中的对象找不到局部变量的问题

  而此时被final修饰的变量可以看成是一个常量,存在于常量池中,不会被立刻回收。

 

注意:但是在jdk1.8之后,可以不用加final修饰了,因为,jdk1.8之后,即使你不加也会默认加上的。

posted @ 2020-02-23 13:46  悠悠南山下  阅读(495)  评论(0编辑  收藏  举报