一.首先,了解Java引用和传值的区别。
引用和传值的区别我这里是转载的一篇博文,感觉写的很棒很清楚,附原文链接:https://blog.csdn.net/weixin_36759405/article/details/82764339
传值:传递的是值的副本。方法中对副本的修改不会影响到调用方。
传引用:传递的是引用的副本,共用一个内存,会影响到调用方。因为传引用后指向的是同一个地址,修改的实际上也就是这个地址的值,所以调用方会受到影响。但是,如果对象被重新创建或赋值为null,即new会重新指向其他对象,不影响其原对象的值。
// 基本数据类型
public class ParamChangeValue {
public static void main(String[] args) {
int s = 1;
System.out.println("args = [" + s + "]");
change(s);
System.out.println("args = [" + s + "]");
}
private static void change(int i){
i = i* 5;
}
}
输出:
args = [1]
args = [1]
传值传递的是值的副本,不会影响到本身。
传引用:
// 对象
public class ObjectChangeValue {
public static class Score{
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public static void main(String[] args) {
Score score = new S