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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

木森森

  • 黑马币:52

  • 帖子:85

  • 精华:0

© 木森森   /  2015-3-14 22:08  /  2344 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已测试楼主的代码,结果编译不能通过,我的Jdk是1.6,告知从内部类中访问局部变量,局部变量必须被final修饰为最终类型,这是截图:


回复 使用道具 举报
看来储备的还不够,不太了解
回复 使用道具 举报
局部变量分配内存在栈上,而对象内存在堆上。所以当函数运行完后(出栈)局部变量不存在了,而对象还存在。则局部变量要声明为final类型(相当于static)。也就是说延长局部变量的生命周期。

点评

final不能延长周期吧!只是不被修改而已吧  发表于 2015-3-20 10:42
回复 使用道具 举报
小甲鱼 发表于 2015-3-20 10:10
局部变量分配内存在栈上,而对象内存在堆上。所以当函数运行完后(出栈)局部变量不存在了,而对象还存在。 ...

好吧,这是另类的说法。那个局部变量出栈了可能会发生意想不到的变化,所以用final限定
回复 使用道具 举报
表示都忘记了,啦啦啦啦。。。
回复 使用道具 举报
jackwang 发表于 2015-3-20 09:33
已测试楼主的代码,结果编译不能通过,我的Jdk是1.6,告知从内部类中访问局部变量,局部变量必须被final修 ...

我用的是1.8的版本
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马