值传递和引用传递
值传递和引用传递
值传递
package base;
/**
* java是属于值传递
*/
public class Demo01 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);//1
test(a);
System.out.println(a);//1
}
public static void test(int a){
a = 10;
}
}
引用传递
package base;
/**
* 引用传递,本质还是值传递,传递过去的是一个对象
*/
public class Demo02 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//null
test(person);
System.out.println(person.name);//张三
}
public static void test(Person person){
person.name = "张三";
}
}
class Person{
String name;
}