前提引言:要理清这个问题需要明确几个问题?什么是值?什么是引用?如何区分是传的值还是引用?
先看区别:
传值:传递的是值的副本。方法中对副本的修改,不会影响到本身。
传引用:本质传递的就是地址,此时,形参和实参指向同一个内存地址。对副本的操作会影响本身,单如设置为null,重新指向其他对象等操作,则不会。
注意:string和包装类不会被改变
直接上代码演示:
//值传递
public class ValueTest {
public static void main(String[] args) {
int value = 1;
System.out.println("old = " + value);
add(value);
System.out.println("now = " + value);
}
private static void add(int i){
i = i* 5;
}
}
运行结果:
old = 1
now = 1
再看对象传递:
//对象传递
public class ObjectTest{
public static class A{