值传递、引用传递
形参:在方法生命是用于接收外界传入的数据
实参:调用方法时实际传入的值
值传递:基本数据类型是属于值传递调用。当我们要实现交换时,方法内可以完成交换,指示实参进行了交换,方法结束,栈空间中就会销毁方法内的局部变量。所以在进行值传递的时候,最终值还是实参的初始化,并没有被修改。值改变作用到形参,而不会到实参.
public static void main(String[] args) {
int a = 4;
int b = 5;
Demo1.swap(a,b);
System.out.println("a="+a+"\tb="+b);
}
public static void swap(int a,int b) {
int temp = a;
a = b;
b = temp;
System.out.println("a="+a+"\tb="+b);
}
引用传递:将实参的引用类型的值(即在堆空间中生成的首地址的值)传递给形参的引用类型的变量
public static void main(String[] args) {
Demo1_Entity a = new Demo1_Entity();
a.a = 4;
a.b = 5;
swap2(a.a, a.b);//a=5 b=4
System.out.println("a=" + a.a + "\tb=" + a.b);//a=4 b=5
swap(a);//a=5 b=4
System.out.println("a=" + a.a + "\tb=" + a.b);//a=5 b=4
}
public static void swap(Demo1_Entity a) {
int temp = a.a;
a.a = a.b;
a.b = temp;
System.out.println("a=" + a.a + "\tb=" + a.b);
}
public static void swap2(int a,int b) {
int temp = a;
a = b;
b = temp;
System.out.println("a=" + a + "\tb=" + b);
}
//实体类:
public class Demo1_Entity {
public int a ;
public int b;
}