黑马程序员技术交流社区

标题: 内部类定义在局部时访问局部变量的问题 [打印本页]

作者: 殷婷婷    时间: 2013-6-4 17:44
标题: 内部类定义在局部时访问局部变量的问题
本帖最后由 殷婷婷 于 2013-6-4 18:34 编辑

请问大家,method(final int a)中被final修饰的变量此时存储在内存什么位置,为什么同一对象调用method方法可以
传入7和8两个不同的值?看了视频还是有点不太懂啊。

作者: 王永贺    时间: 2013-6-4 17:51
因为fina修饰的是一个参数,传入7和8相当于调用了两次方法,a作为形参是可以给它传不同的值的
作者: 冯超    时间: 2013-6-4 17:59
我觉得final int a 还是放在哪个final的那个内存的位置(我对内存分配不了解),只不过他是形参,作用域太短太短而已吧··
       为什么同一对象调用method方法可以传入7和8两个不同的值?
  为什么不能了,你吃饭,可以中午吃,下午吃 ,晚上吃,只不过吃的内容而已
作者: liujkh123    时间: 2013-6-4 18:10
调用method方法时 会在内存中分配一段空间给method方法,方法执行完后,就释放该空间,里面所有包含的变量什么的都没了
用final 修饰a只是表示在该方法生命周期内a的值是不能被改变的。
作者: 王瀛    时间: 2013-6-4 18:14
method方法中a虽然被final修饰,但是a处在方法的局部变量的位置上,即method被调用时,a是在栈内存中,
当method方法执行完,栈内存中的变量会自动释放,当然 a也就随之"烟消云散",

所以可以多次调用method方法 传入不同的值
作者: 殷婷婷    时间: 2013-6-4 18:28
王瀛 发表于 2013-6-4 18:14
method方法中a虽然被final修饰,但是a处在方法的局部变量的位置上,即method被调用时,a是在栈内存中,
当m ...

谢谢啊,懂了,呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2