java的方法传参,最容易混淆的问题!!!

参数传递

参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递。

  • 在这里,定义方法时,参数列表中的变量,我们称为形式参数
  • 调用方法时,传入给方法的数值,我们称为实际参数

我们看下面的两段代码,来明确下参数传递的过程:

public class ArgumentsDemo01 {
public static void main(String[] args) {
  int a=5;
  int b=10;
change(a, b);//调用方法时,传入的数值称为实际参数
  System.out.println("a=" + a);
  System.out.println("b=" + b);
}

public static void change(int a, int b){//方法中指定的多个参数称为形式参数
  a=200;
  b=500;
  }
}

程序的运行结果如下:

 

再看另一段代码

public class ArgumentsDemo02 {
public static void main(String[] args) {
  
int[] arr = { 1, 2, 3 };   change(arr);// 调用方法时,传入的数值称为实际参数   for (int i = 0; i < arr.length; i++) {     System.out.println(arr[i]);     }   } public static void change(int[] arr) {// 方法中指定的多个参数称为形式参数   for (int i = 0; i < arr.length; i++) {     arr[i] *= 2;     }   } }

程序的运行结果如下:

总结:

  在方法传参的过程中的要分清楚传递的是基本数据类型还是引用数据类型.其中基本数据类型传递过程中传递的是数值本身,而引用数据类型传递的是地址值! 所以基本数据类型传递的时候的数据值不会发生改变,而引用数据类型数值发生改变.

原文地址:https://www.cnblogs.com/alexzhang92/p/10089405.html