黑马程序员技术交流社区
标题:
为什么方法中的内部类要访问临时局部变量必须加final...
[打印本页]
作者:
付玉光
时间:
2013-2-25 18:30
标题:
为什么方法中的内部类要访问临时局部变量必须加final...
为什么方法里面的内部类要访问临时局部变量时必须加final关键字来修饰?是不是被final修饰的临时局部变量生命周期会延长呀?师兄师姐们谁能给小弟,解释一下呀?{:soso_e100:}
作者:
黑马刘杰
时间:
2013-2-25 19:13
就是生命周期的问题啊
Java程序中内部类对象的生命周期会超过局部变量的生命期。
局部变量的生命期:当该方法被调用时,该方法中的局部变量在栈中被创建,当方法调用结束时,退栈,这些局部变量全部死亡。
而内部类对象生命期,与其它类一样,当创建一个局部内部类对象后,只有当没有其它人再引用它时,它才能死亡。
所以完全可能一个方法已调用结束(局部变量已死亡),但该局部类的对象仍然活着。即:局部类的对象生命期会超过局部变量。
加final就可以解决这个问题
作者:
刘凯
时间:
2013-2-25 20:24
看这里
http://bbs.itheima.com/forum.php?mod=viewthread&tid=20708&highlight=%E5%B1%80%E9%83%A8%E5%86%85%E9%83%A8%E7%B1%BB%E8%AE%BF%E9%97%AE
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2