Java的值传递问题:
看下面的类
public class Test { public static void main(String[] args) { int a = 5, b =7; ch(a, b); System.out.println(a); } //将x,y的值进行交换 public static void ch(int x, int y) { int t = x; x = y; y = t; }}
根据程序来看的话,应该会输出7,然而实际上的输出却是5, 这是因为java是值传递,传入的参数是一个复制的值,原来的值不会改变,ch方法中的改变影响不了main方法中的a,b的值.
改成下面的就可以正常输出7,在ch方法中进行输出:
public class Test { public static void main(String[] args) { int a = 5, b =7; ch(a, b); } //将x,y的值进行交换 public static void ch(int x, int y) { int t = x; x = y; y = t; System.out.println(x); }}