我有这样一个简单的程序。
public class J_Test
{

public static void main (String args[])
{

String[] s = {"1","2"};
J_Test j = new J_Test();
j.mb_swap(s[0],s[1]);
System.out.println(s[0]+s[1]);
}
public void mb_swap(String a, String b)
{
String t = a;
a = b;
b = t;

}

}但是每次打出来都是12,我想要21怎么办?因为用C都是直接这样写,但不明白为什么在Java就不被转过来。用static也不行。谢谢。

解决方案 »

  1.   

    public static void main (String args[]) {
        String[] s = {"1","2"};
        J_Test j = new J_Test();
        j.mb_swap(s, 0, 1);
        System.out.println(s[0]+s[1]);
    }public void mb_swap(String[] d, int index1, int index2) {
        String t = d[index1];
        d[index1] = d[index2];
        d[index2] = t;
    }
      

  2.   

    谢谢楼上的,就是要把String传进去就可以了吧!
    那我大概明白什么意思了。好像C里面不需要那么麻烦吧……
      

  3.   

    与C语言一样,JAVA数组名传递的是地址
      

  4.   

    主要是因为Java传值不传引用,不像C++里那么多传法。
    而且Java对类的引用传递方式也不像C++里的引用传递,Java那个的实质还是传递的一个引用的值(再说明白点就是一个指针),C++传进去那个才是真正的引用。