引用传递分析
类本身属于引用数据类型,既然是引用数据类型,那么久牵扯到内存的引用传递,所谓的引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以更换指向。
范例:定义一个引用传递的分析程序
public class JavaDemo{
public static void main(String args[]){
Person per1 = new Person(); //声明并实例化对象
per1.name = "张三";
per1.age = 18;
Person per2 = per1; //引用传递
per2.age = 80;
per1.tell(); //进行代码调用
}
}

这个时候的引用传递是直接在主方法之中定义的,也可以通过方法实现引用传递处理。
范例:利用方法实现引用传递处理
public class JavaDemo{
public static void main(String args[]){
Person per = new Person(); //声明并实例化对象
per.name = "张三";
per.age = 18;
change(per); //等价于:Person temp = per;
per.tell(); //进行代码调用
}
public static void change(Person temp) {
temp.age = 80;
}
}
姓名:张三、年龄:80
与之前的差别最大的地方在于,此时的程序是将Person类的实例化对象(内存地址、数值)传递到了change()方法之中,由于传递的是一个Person类型,那么change()方法接收的也是Person类型。

引用传递可以发生在方法上,这个时候一定要观察方法的参数类型,同时也要观察方法的执行过程。
网友评论