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
{
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
java是传值方式进行的
所以在此处你的方法中mb_operate(String x,String y) 无论怎么调用
都是进行的一个拷贝在操作 因此不会影响原来的值
去看下两个数的交换程序 有类似情形 你就明白了
生成两个String类型的变量x,y,分别指向a,b所指向的对象
在mb_operate方法里x,y变了经过一些处理,指向了其他的String对象
但a,b没有变,还是A,B,所以结果是A.B