黑马程序员技术交流社区

标题: java中实参传递给形参,实参值会不会改变?? [打印本页]

作者: 乔玉吉    时间: 2012-3-10 00:52
标题: java中实参传递给形参,实参值会不会改变??
本帖最后由 乔玉吉 于 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;

         }
}


作者: 房宝彬    时间: 2012-3-10 01:00
传对象进入的话,如果你改变他的引用,肯定实参不会变,如果你改变他引用的值,实参就会变..


作者: 贠(yun)靖    时间: 2012-3-10 01:16
不会改变,传参可以理解为赋值
  实参a=1;    传到形式参数b上  其实就是b=a;  所以b=1;  实参还是1
而是对象的话 是传对象的内存地址的   实参引用a=0x0001地址   传给形参引用b   b=0x0001地址
这样b和a都指向了  同一个对象   
  还有如果用匿名对象(new 类())传的话   就是只有形参b指向内存地址 即 b=0x0001  就相当于     类 b=new 类();  了  
这时候栈内存中只有一个变量  
作者: 小白    时间: 2012-3-10 08:19
实参传的是值,对象传递的是应用变量中的内存地址!
作者: 王杰    时间: 2012-3-10 09:57
实参的值不会改变,因为进行的是值传递。
如果传递的是对象的话。其实我们传递的是对象在堆内存中的地址。
我们可以根据地址对该对对象中的内容进行修改。




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