值传递的本质是:传递的是只是数据的副本,数据没有做出交换
引用传递的本质是:指向数组的地址,所以数值发生的变换
package four;
import java.util.Scanner;
public class chuandi {
//值传递
static void exchange1(int x,int y){
int temp=x;
x=y;
y=temp;
}
//引用传递
static void exchange2(int[] a){
int temp=a[0];
a[0]=a[1];
a[1]=temp;
}
public static void main(String[] args){
// Scanner inuot=new Scanner(System.in);
int number1=1001;
int number2=1002;
System.out.println("程序员1的编号:"+number1);
System.out.println("程序员2的编号:"+number2);
exchange1(number1,number2);
System.out.println("程序员1的编号:"+number1);
System.out.println("程序员2的编号:"+number2);
int[] num=new int[2];
num[0]=1001;
num[1]=1002;
System.out.println("程序员1的编号:"+num[0]);
System.out.println("程序员2的编号:"+num[1]);
exchange2(num);
System.out.println("程序员1的编号:"+num[0]);
System.out.println("程序员2的编号:"+num[1]);
}
}
下面是运行结果