局部内部类的final问题
/**
* @auther wh
* date 2021年07月07日19:45
* 局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final】
* 备注:从java8+开始 只有局部变量事实不变,可以省略final
*
* 原因
* 1.new出来的对象在堆内存中
* 2.局部变量是跟着方法走的,在栈内存中
* 3.方法运行结束后,立刻出栈,局部变量会立刻消失
* 4.但是在new出来的对象在堆内存中持续存在,直到垃圾回收消失。
*/
public class MyOther {
public void methodOuter{
final int num=10;//所在方法的局部变量
class MyInner{
public void methodinner(){
System.out.println(num);
}
}
}
}