按值传递:方法定义时,如果形参是基本类型,那么参数就是按值传递
引用传递:如果形参是引用类型,那么参数就是引用传递
按值传递和按引用传递有什么区别呢?
按值传递:传递变量的值(也可以理解传递的变量的副本),不影响变量本身
按引用传递:传递的是内存地址(也可以理解传递的变量本身),影响变量本身
注意://String作为参数传递的时候,按值传递
按值传递案例:
例如:
public class Demo {
public void add(int num1){
num1+=100;
System.out.println("add()中的num1:"+num1);
}
}
public class DemoTest {
public static void main(String[] args) {
Demo demo = new Demo();
int num1=13;
demo.add(num1);
System.out.println("DemoTest中的num1:"+num1);
}
}
控制台输出:
add()中的num1:113
DemoTest中的num1:13
引用传递的案例:
public class Demo {
public void add(int[] array){
array[0]+=100;
System.out.println("add()中的num1:"+array[0]);
}
}
public class DemoTest {
public static void main(String[] args) {
Demo demo = new Demo();
int[] array = new int[1];
array[0]=12;
demo.add(array);
System.out.println("DemoTest中的num1:"+array[0]);
}
}
add()中的num1:112
DemoTest中的num1:112