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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tintick 黑马帝   /  2012-2-23 16:29  /  1531 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么方法中的内部类访问方法中的变量时,只能访问final

3 个回复

倒序浏览
内部类的生命周期有可能大于方法。因为,方法中的变量只有在执行到的时候创建,用完即为垃圾被回收。而内部类有可能还没有被毁灭。所以必须为final。
回复 使用道具 举报
如果不是final的话,方法执行完毕局部变量就结束生命,而内部类的引用很有可能还被其他变量持有,
为了仍然能让内部类访问到局部变量,所以定为final,这样它会一直存在于内存中,直到程序结束
回复 使用道具 举报
当被final所修饰的变量称之为全局变量,一直都会在内存中存在的,直到程序运行结束!内部类访问方法中的变量如果不加final的话!在方法执行完成后,局部变量生命周期就会结束,从栈内存中消失!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马