野性音响

文章
7
资源
0
加入时间
3年0月20天

为什么内部类引用的外部变量必须用final修饰(JDK1.8可以不用final修饰, 但外部变量也不可更改, 即相当于隐性的final修饰)

final 是保护 所修饰的类、方法、变量不能被改变的,并不占用内存。  真正的原因是因为生命周期的原因。方法中的局部变量,方法结束后这个变量就要释放掉,而final会保证这个变量始终指向一个对象。  首先,内部类和外部类其实是处于同一个级别,反编译中可以看到都是对象级别的类文件,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随者被销毁。问题就来了,如果外部类的方法中的变量不定义...