值传递or引用传递
值传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量
public static void main(String[] args) {
int a = 3;
String b = "nihao";
change(a,b);
System.out.println(a);//3
System.out.println(b);//nihao
}
public static void change(int a,String b){
a = 10;
b = "hello";
}
引用传递
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。
public class Demo02 {
//引用传递 : 对象
public static void main(String[] args) {
Person person = new Person();
System.out.println(person);//null
person.name = "lisa";
System.out.println(person.name);//lisa
change(person);
System.out.println(person.name);//张三
}
public static void change (Person person){
//person 是一个对象,是指Person person = new Person();可以改变属性
person.name = "张三";
}
}
class Person{
String name;
}