public class Xam 
{

public static void main(String args[])
{

int a=1;
System.out.println(a);
Xam(a);
System.out.println(a);
}
public static void Xam(int d)
{
d++;
}}
输出1,1
public class Max 
{

public static void main(String args[])
{

int arrayA[]={1};
System.out.println(arrayA[0]);
Max(arrayA);
System.out.println(arrayA[0]);
}
public static void Max(int arrayB[])
{
arrayB[0]++;
}}
输出1,2
请问这是什么原因?

解决方案 »

  1.   

    因为在第一个方法中你并没有改变1的值啊,你虽然执行了d++但是并没有把改变的结果赋值给a啊你把Xam(a); 这句话改成a=Xam(a); 就好了
      

  2.   

    1,1是因为把a的值是数字1复制给参数里的d,让d的值也为1,然后d++;(此时与a无关)1,2是因为只有一个数组对像.你把对像传过去了.如果修改的话都是修改同一个地方.用银行卡,和存折,结果都一样.钱一样那么多,这边取钱了,那边会发现少了.这边存钱,那边也会看到钱多了