【JAVA】数据交换,java方法参数,
分享于 点击 29736 次 点评:116
【JAVA】数据交换,java方法参数,
还是先看题吧:
package test.java;
public class test8 {
static String a = "yes";
static String b ="no";
public static void main(String[] args) {
jh(a,b);
System.out.println("a:" + a + "b:" + b);
}
private static void jh(String a, String b) {
String c = a;
a = b;
b = c;
}
}
print打印出来的 a 和 b 应该是什么值呢?
A: a:yes ; b:no
B: a:no ; b:yes
---------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------
答案显而易见:A
那么问题来了,是为什么呢?
这个就得说到JAVA传递参数的方式了,很多程序提供了两种参数传递方式:1、值调用,2、引用调用
上面这段代码, jh 方法中的参数 a 和 b 被初始化为两个对象(a和b)的引用的拷贝,并没有调用声明的 a 和 b 的引用,
所以,在 jh 交换时,实质上交换的是这两个拷贝,并没有交易换原 a 和 b 的引用。
故答案是:A
相关文章
- 暂无相关文章
用户点评