Java中,类本身属于引用数据类型,既然是引用数据类型,那么就牵扯到内存的引用传递,其实引用传递的本质就是:同一块对内空间可以被不同的栈内存所指向,也可以更换指向。
比如以下代码:
public static void main(String args[]){
Person per1=new Person();
Person per12=per;//引用传递
per1.name="张三";
per1.age=18;
System.out.println(per2.getName());
}
这时我们的per2的name属性也是张三,因为他们指向的是同一块堆内存。
于是我们可以通过函数来实现这样的效果:
public void change(Person temp){
temp.age=80;
}
public static void main(String args[]){
Person per=new Person();
per.name="张三";
per.age=18;
per.change(per);//调用函数
System.out.println(per.age);
}
毫无疑问,输出的年龄还是80,因此引用传递可以发生在方法上,这时一定要观察方法的参数类型,还有观察方法的执行过程。