本帖最后由 gwgyk 于 2010-12-10 21:05:28 编辑

解决方案 »

  1.   

    应该是c吧,这儿的a和b是引用传递!
      

  2.   

    这个当然是选项(A)啦,你想一下,你的mb_operate(String x,String y)调用完又没返回什么结果,不会影响到你的main方法里面的打印。也就是说,你的mb_operate(String x,String y)方法调了等于白调,要不要它打印的结果都一个样。
      

  3.   

    字符串传值,不传地址,所以选择A。String的Concat方法貌似也是new2个字符串,然后+在一起,所以等于是NEW了一个新的字符串对象了。貌似是这样的!
      

  4.   

    选择A。mb_operate方法的作用域只是在它本身的方法当中。在外面输出的a,b的值是不会变的。原因,mb_operate只是把值传进去了,并没把变量本身传进去。
      

  5.   

    A 打印出来的还是原来的a,b
      

  6.   

    A.B吧,所谓的参数其实是引用的副本
    public static void mb_operate(String x, String y)
    {
    x.concat(y);
    y = x;
    }里面做的事情 , 只是让副本指向了新的对象而已,改变的是副本
      

  7.   

    来扫盲了Java里引用也是值,因此:        Java里只有值传递.
      

  8.   

    我说说 
    字符串放在静态常量池中,a指向“A”,b指向“B”,执行mb_operate(a,b);后x,y复制了a,b的地址,此时x和a,b和y指向常量池中的同一个对象,String和别的不同,当执行里面的方法后,x.concat(y);
    y = x;后x指向了另一个对象,y也指向了另一个对象,都为”AB只是指向了另外的一个对象,并不会改变a和b指向对象的值,这点和其他的引用类型是不同的。