为什么这段java代码不能实现数值交换? 你这个打印的还是main方法里面定义的局部变量,传递参数是不会转变参数的值的 建议楼主好好看一下canshuchu 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 据可靠消息说: java中的参数的传递有值传递和引用传递 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。 package test;public class Swap { static class Integer { private int value; Integer(int value) { this.value = value; } public void set(int value) { this.value = value; } @Override public String toString() { return String.valueOf(value); } } public static void Swapit(Integer a, Integer b) { int temp; temp = a.value; a.set(b.value); b.set(temp); } public static void main(String[] args) { Integer a = new Integer(5); Integer b = new Integer(8); System.out.println("交换之前:"); System.out.println("a=" + a + " b=" + b); Swapit(a, b); System.out.println("交换之后:"); System.out.println("a=" + a + " b=" + b); }}运行结果:交换之前:a=5 b=8交换之后:a=8 b=5 局部变量,出栈就没了,采用就近原则,取进入方法前的值。给你一个数值交换的好东西:a = b+0*(b=a); 请问这个是什么错误 httpclient主要涉及哪方面? 利用SimpleDoc进行文档打印时出现的乱码问题 spring里用rmi出错 把xml字符串作为http的参数传递请求原代码? 网站子目录绑定域名 请大家指教这个Spring例子错在哪里? 为什么这一段把public去掉就可以运行,加上去就不行呢? jsp连接ejb问题(急) 新手 请问,JAVA里,怎样可以改变已定义数组的大小(类似于C语言中函数realloc的功能)。 使用java生成html树状导航 JMX调用报错,原因不明,请高手提供思路(在线等,谢谢!)
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
package test;
public class Swap { static class Integer { private int value; Integer(int value) {
this.value = value;
} public void set(int value) {
this.value = value;
} @Override
public String toString() {
return String.valueOf(value);
}
}
public static void Swapit(Integer a, Integer b) {
int temp;
temp = a.value;
a.set(b.value);
b.set(temp); } public static void main(String[] args) { Integer a = new Integer(5);
Integer b = new Integer(8);
System.out.println("交换之前:");
System.out.println("a=" + a + " b=" + b);
Swapit(a, b);
System.out.println("交换之后:");
System.out.println("a=" + a + " b=" + b); }
}运行结果:交换之前:
a=5 b=8
交换之后:
a=8 b=5