[讨论] 为什么内部类访问的外部变量需要是final修饰了

chenchuan 2012-09-27
最近在用匿名的内部类,但是在外部方法的参数在内部类中使用的时候需要final 修饰,这个是什么原因,希望能从jvm层面给予解释
hello1kitty 2012-09-27
我想的是  final修饰后 这个变量是常量了,就放到常量池去,可以访问,但是如果不是常量的话,在函数内部,可能放到栈里去了
qianhd 2012-09-27
生命周期不同
方法中的局部变量,方法结束以后这个变量就要被释放掉.final保证这个变量始终指向一个对象,内部类就可以大胆直接指向该对象.

记住内部类只是编译器现象

基本功不够扎实 买本书看看吧
Global site tag (gtag.js) - Google Analytics