这属于对象的引用传递,比如
class Student {
private String name;
private int age;
public Student(){
this.name="zhangsan";
this.age=15;
}
}
public class TestStudent{
public static void main(String [] args){
Student stu=new Student();
change(stu);
public static void change(Student st){
st.name="lisi";
st.age=40;
}
}
}上面是俩个类,student \testStudent 当你在TestStudent类中new出Sutdent类的实例对象的时候,你的stu变量就会在栈内存中产生,同时在堆内存中会产生相应的属性变量空间以及值,当你把stu当做参数传递给change函数时,就等于把stu在栈内存中存储的与其相对应在堆内存中的属性空间的地址传给了st变量,所以此时的st变量也指向了stu所指向的属性值,所以stu的属性值会改变 |