JAVA程序设计语言总是采用按值调用(call by value)。
如果你企图把一个传入的int类型的参数值变为原来的三倍,那是不可行的:
int x = 0;private void x3(int x){ x = x * 3;}
方法执行后x的值仍然为3。
对于引用类型的参数,方法会拷贝一个引用值,一个临时的、生命周期在方法内部的变量会和传递进来的引用型变量指向同一个地址。许多人认为JAVA对对象引用采用按引用调用(call by reference),其实不是。只要简单写一个swap函数,尝试交换两个对象引用就验证了,结果肯定是交换失败。
|
|