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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 乔玉吉 于 2012-3-10 00:54 编辑

java中实参传递给形参,实参值会不会改变??如果传的是对象呢
public class J_Test
{
         public static void main(String args[])
         {

        int i = 99;

        mb_operate(i);

        System.out.println(i+100);

         }

        static void mb_operate(int i)
         {

         i+=100;

         }
}

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
传对象进入的话,如果你改变他的引用,肯定实参不会变,如果你改变他引用的值,实参就会变..

回复 使用道具 举报
不会改变,传参可以理解为赋值
  实参a=1;    传到形式参数b上  其实就是b=a;  所以b=1;  实参还是1
而是对象的话 是传对象的内存地址的   实参引用a=0x0001地址   传给形参引用b   b=0x0001地址
这样b和a都指向了  同一个对象   
  还有如果用匿名对象(new 类())传的话   就是只有形参b指向内存地址 即 b=0x0001  就相当于     类 b=new 类();  了  
这时候栈内存中只有一个变量  
回复 使用道具 举报
实参传的是值,对象传递的是应用变量中的内存地址!
回复 使用道具 举报
实参的值不会改变,因为进行的是值传递。
如果传递的是对象的话。其实我们传递的是对象在堆内存中的地址。
我们可以根据地址对该对对象中的内容进行修改。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马