局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量就必须是final的(或者只赋值一次) 从Java8开始,只要局部变量事实不变那么final关键字可以省略 为什么需要保证变量为final,因为与生命周期有关,只有不变才能谈到复制在类内部; 1new出来的对象在堆内存当中; 2局部变量是跟这方法走的,在栈内存当中 3方法运行结束之后立刻出栈,局部变量就会立刻消失 4但是new出来的对象会在堆当中持续存在,直到垃圾回收消失; 来源:https://www.cnblogs.com/Damocless/p/11869838.html 标签 final