在程序语言设计中, 值调用是表示方法接收到的是调用者提供的值。而引用调用表示方法接收的是调用者提供的变量位置。在Java中使用的是什么调用的呢,我们来看一个例子。
在高校里面,某些所谓的知名教授,跟大家说,程序语言设计中方法有实参、形参。其实呢,早在1990年,美国的计算机界把根本没这叫法,这种叫法只能让人对方法的调用更晕。
运行上述程序,可以看到输出的结果为:
i = 10
x = 30
方法的参数有两种形式,基本数据类型与对象引用。
上面的例子,可以看到,一个方法不可能修改一个基本数据类型。
其实,java中所有方法使用的是值调用,就是说,方法得到的是参数值的一个拷贝。
可能有人不同意了,认为还有引用调用。
OK,我们再看一个例子。
如果java的方法使用的有引用调用,那这个swap()交换函数应该生效,得到的结果应该是我们想的那样。
实际上运行得到的结果却是:
a.i = 10
b.i = 20
我们可以画图理解上面的程序。
ps:这个csdn写博的编辑器要让让我疯了...太麻烦