二面匿名内部类中的变量究其原因是因为内部类实例是在堆中的,变量实在栈中的,生命周期随着方法的结束而出栈,而这时候内部类还持有变量的引用,但是java会自动为变量在内部类保存一个副本,但是如果变量发生变化了那副本也得变,所以就直接设置成final,防止变化了(引用类型的变量内容还是可以变)。我理解是这样的不知道对不对😂