在Java 中方法参数只有值传递,没有引用传递,像C#中 method(ref value....) 这种传引用参数的做法是不被支持的 [java] view plaincopyprint? public class StringTest { public int i=1; public StringTest(int i){ this.i=i; } public static void st(int in,StringTest st1,StringTest st2){ in=1; st1.i=10; st2=st1; //1 st2.i=20; //2 } public String toString(){ return String.valueOf(i); } public static void main(String args[]){ StringTest st1=new StringTest(1); StringTest st2=new StringTest(2); int in=0; st(in,st1,st2); System.out.println(in);//输出:0 这说明他是传值,而不是传址(引用) System.out.println(st1);//输出:20 System.out.println(st2);//我们发现无论是否注释掉位置2那一行,其输出:2 这里为什么是2呢?我们知道参数st2其实传递的是内存地址,而当把st1赋值个st2,其实改变的时st2这个变量的引用地址,因此当前的st2是没有变化的 //输出:2 } }