您的位置:首页 > 编程语言 > Java开发

Java参数传递方式总结

2011-06-18 11:38 295 查看
经过测试,基本得出结论如下:
1、 如果参数是基本数据类型(int、long等),传值。方法内部改变参数值,外部值不变。
2、 如果参数是对象类型,传地址。方法内部改变对象值,外部对象值改变。但是,如果方法内部调用new重新构建参数对象,外部对象仍然记录构造前的对象值。
3、 查看网上资料,说对于远程调用,不论是基本类型还是对象类型,都是传值。未经测试。

/**
* 参数传递测试
*
* @author Administrator
*
*/
public class ParamTransferTest {

public static void changeI(int i) {
i++;
}

public static void changeSimpleParam(SimpleParam sp) {
sp.i = 10;
sp = new SimpleParam();
}

public static void main(String[] args) {
int i = 1;
System.out.println("origin i=" + i);

ParamTransferTest.changeI(i);
System.out.println("changeI(i)=" + i);

SimpleParam sp = new SimpleParam();
sp.setI(i);
System.out.println("SimpleParam.setI(i)=" + i + ", sp.i=" + sp.i);

changeSimpleParam(sp);
System.out.println("changeSimpleParam()=" + sp.i);
}
}

class SimpleParam {
public int i;

public void setI(int i) {
i++;
this.i = i;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: