值传递:当数据做为基础类型和String 在进行传递的时候,其本身的值是不会发生变化的。形参在这里只是接受这个值一份拷贝而已
//测试
public class People {
public int age;public int changAge(int age) {
age++;
return age;
}
public static void main(String[] args) {
People p = new People();
int age = 20;
p.changAge(age);
System.out.println(age);
}
}
//结果
20
引用传递: 当数据作为自定义对象在进行传递,整个对象不会进行拷贝,直接由形参所接受,如果有方法操作了这个对象,理所应当的对象就会发生变化
//测试
public class People {
public int age;
public int changeAge(People p) {
int age = p.age++;
return age;
}
public static void main(String[] args) {
People p = new People();
p.age = 20;
p.changeAge(p);
System.out.println(p.age);
}
}
//结果
21