局部内部类的final问题

局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量就必须是final的(或者只赋值一次) 

从Java8开始,只要局部变量事实不变那么final关键字可以省略

为什么需要保证变量为final,因为与生命周期有关,只有不变才能谈到复制在类内部;

1new出来的对象在堆内存当中;

2局部变量是跟这方法走的,在栈内存当中

3方法运行结束之后立刻出栈,局部变量就会立刻消失

4但是new出来的对象会在堆当中持续存在,直到垃圾回收消失;

猜你喜欢

转载自www.cnblogs.com/Damocless/p/11869838.html
今日推荐