我们通过两个例子来了解java方法的参数传递机制 TestPrimitiveTransfer.java 源代码如下 [code lang="java"] public class TestPrimitiveTransfer { public static void swap(int a,int b) { //下面三行代码实现a,b变量的值交换 //定义一个临时变量来保存a变量的值 int tmp=a; a=b; //把临时变量tmp的值赋给a b=tmp; System.out.println("swap方法里,a的值是"+a+",b的值是"+b); } public static void main(String[] args) { int a=6; int b=9; swap(a,b); System.out.println("交换后,实参a的值是"+a+",实参b的值是"+b); } } [/code] 效果如下 同时TestReferenceTransfer.java 源代码如下 [code lang="java"] public class TestReferenceTransfer { public static void swap(DataWrap dw) { //下面三行代码实现dw的a,b属性值交换 //定义一个临时变量来保存dw对象的a属性的值 int tmp=dw.a; dw.a=dw.b; dw.b=tmp; System.out.println("swap方法里,a属性的值是"+dw.a+";b的值是"+dw.b); } public static void main(String[] args) { //DataWrap类在DataWrap.java里面 DataWrap dw=new DataWrap(); dw.a=6; dw.b=9; swap(dw); System.out.println("交换结束后,a属性的值是"+dw.a+";b属性的值是"+dw.b); } } [/code] 其中的DataWrap类在DataWrap.java里面,源代码如下 [code lang="java"] public class DataWrap { public int a; public int b; } [/code] 运行效果图如下