package com.day11.参数传递;
public class Demo {
/**
* @param args
* 基本数据类型参数值传递,不改变原值,因为调用后就会弹栈,而局部变量随之消失
* 引用数据类型的值传递,改变原值,因为即使方法弹栈但是堆内存的数组对象还在,可以通过继续访问
* 两者都是值传递,一个传递的是具体值,一个传递的是地址值
*/
public static void main(String[] args) {
int a=1;
int b=2;
change(a,b);
System.out.println("a="+a+" "+"b="+b);//a=1 b=2
int[] arr={1,2};
changeArray(arr);
System.out.println("arr[0]="+arr[0]+" "+"arr[1]="+arr[1]);//arr[0]=2 arr[1]=1
}
private static void change(int a, int b) {
int temp;
temp=a;
a=b;
b=temp;
System.out.println("a="+a+" "+"b="+b);//a=2 b=1
}
private static void changeArray(int[] arr) {
int temp;
temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
System.out.println("arr[0]="+arr[0]+" "+"arr[1]="+arr[1]);//arr[0]=2 arr[1]=1
}
}