Java值传递

Java值传递?

基本类型作为参数传递

public class Test1 {
public static void main(String[] args) {
int n = 3;
System.out.println("Before change, n = " + n);
changeData(n);
System.out.println("After changeData(n), n = " + n);
}
public static void changeData(int nn) {
nn = 10;
}
}

我想这个例子大家都明白,基本类型作为参数传递时,是传递值的拷贝(比如拷贝的文本,怎么改变,元文本都不会变),无论你怎么改变这个拷贝,原值是不会改变的,输出的结果证明了这一点:
Before change, n = 3
After changeData(n), n = 3

值传递-传递的是一份拷贝(副本,跟原件没有关系),跟原来的没有什么关系

然后传对象是传地址值(也是一个值),只不过这个地址值指向的是一个对象,对象改变,指向他的地址值也改变

你可能感兴趣的:(技术文章每日必读)