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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 殷婷婷 于 2013-6-4 18:34 编辑

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

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

5 个回复

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

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

谢谢啊,懂了,呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马