class J_String 
{
 public static void main(String args[])
 {
  String a=new String("A");
  String b=new String("B");
  mb_operate(a,b);
  System.out.println(a+"."+b);
 }
 static void mb_operate(String x,String y)
 {
  x=x+y;
  y=x;
 }
}结果咋么是A.B

解决方案 »

  1.   

    弄清楚java的传递方式
    java是传值方式进行的 
    所以在此处你的方法中mb_operate(String x,String y)  无论怎么调用
    都是进行的一个拷贝在操作 因此不会影响原来的值 
    去看下两个数的交换程序 有类似情形  你就明白了
      

  2.   

    mb_operate(a,b);
    生成两个String类型的变量x,y,分别指向a,b所指向的对象
    在mb_operate方法里x,y变了经过一些处理,指向了其他的String对象
    但a,b没有变,还是A,B,所以结果是A.B
      

  3.   

    java中是值传递啊,没有引用传递。
      

  4.   

    java中是值传递啊,没有引用传递。