A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   为什么方法里面的内部类要访问临时局部变量时必须加final关键字来修饰?是不是被final修饰的临时局部变量生命周期会延长呀?师兄师姐们谁能给小弟,解释一下呀?{:soso_e100:}

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 鼓励一下

查看全部评分

2 个回复

倒序浏览
就是生命周期的问题啊

Java程序中内部类对象的生命周期会超过局部变量的生命期。

局部变量的生命期:当该方法被调用时,该方法中的局部变量在栈中被创建,当方法调用结束时,退栈,这些局部变量全部死亡。

而内部类对象生命期,与其它类一样,当创建一个局部内部类对象后,只有当没有其它人再引用它时,它才能死亡。

所以完全可能一个方法已调用结束(局部变量已死亡),但该局部类的对象仍然活着。即:局部类的对象生命期会超过局部变量。

加final就可以解决这个问题
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马