Java基础——方法传值(基本数据类型 VS 引用数据类型)

总结——基本数据类型传值,引用类型传地址

在Java语言中,不管参数的类型是引用类型还是基本数据类型,数据参数和形式参数进行值传递的方式只有一种——参数值的值 复制一份 赋值给形式参数

所以,实参的值,其实就有两份,调用方法中一份,被调用方法中一份

1、当方法的参数是基本数据类型的参数时,参数有两份,同时参数对应的数据的值也有两份

2、当方法的参数是引用类型时,参数值有两份,但是两个数组类型引用变量,对应的值(数组),只有一个

public class Demo1 {

  public static void main(String[] args) {
    //int a = 10;
    //int b = 20;
    //System.out.println("a:" + a + ",b:" + b);
    //change(a, b);
    //System.out.println("a:" + a + ",b:" + b);

    //--------------------------------------------------------------------

    int[] arr = {1, 2, 3, 4, 5};
    change(arr);
    System.out.println(arr[1]);
  }

  public static void change(int a, int b) {
    System.out.println("change a:" + a + ",b:" + b);
    a = b; // a = b
    b = a + b; //b = b + b = 2b
    System.out.println("change a:" + a + ",b:" + b);
  }

  public static void change(int[] arr) {
    for (int x = 0; x < arr.length; x++) {
      if (arr[x] % 2 == 0) {
        arr[x] *= 2;
      }
    }
  }
}
原文地址:https://www.cnblogs.com/lcpp/p/13096851.html