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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不存在的奇迹 中级黑马   /  2015-4-20 18:54  /  474 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

局部内部类访问局部变量必须加final修饰,为什么?

5 个回复

倒序浏览
局部变量存储在栈中 当方法执行完毕的时候 会立即清除掉栈中的数据  从而清楚掉局部变量 而局部内部类可能还会使用里面的变量 都清除了怎么还能用呢 那就必须保证局部变量不被清除掉 变量被final修饰后就变成了常量 就不会被立即清除掉 这样才能保证局部类部类能正常使用局部变量

jdk8中 局部变量即使不被final修饰 局部内部类也可以访问

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
doomsday 发表于 2015-4-20 19:25
局部变量存储在栈中 当方法执行完毕的时候 会立即清除掉栈中的数据  从而清楚掉局部变量 而局部内部类可能 ...

学习了。。:lol
回复 使用道具 举报
超值强帖,帮你顶,^_^
回复 使用道具 举报
只是一个生命周期的问题,如果是一般的局部变量,那它的生命周期肯定会比局部内部类要短,这样的话如果内部类在使用局部变量的话那就可能会出问题,所以才加final修饰,延长局部变量的生命周期。
回复 使用道具 举报
顶一下吧~ 很少见的好帖了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马