调用一个方法时的流程( 二 )


我们在调用时,会根据传入的实参的 个数,顺序,类型,来调用对应的方法
方法的值的传递机制:
方法的值的传递机制分为两种类型:
? 基本类型参数 / 引用类型参数
基本类型参数:
观察下列代码:
public static void main(String[] args){int num=10;change(num);System.out.println(num);}static void change(int num){System.out.println(num);num=20;System.out.println(num);}
该代码输出结果为: 10 20 10
分析:首先初始化num=10,然后调用方法,方法中首先输出10,然后改变num=20,然后输出num=20,由于我们传递基本类型参数时,传递的是参数值,所以主方法中的num值并不会收到方法中的影响,此时主方法中输出的num还是10
public static void main(String[] args){int[] arr={10};change(arr);System.out.println(arr[0]);}static void change(int[] arr){System.out.println(arr[0]);arr[0]=20;System.out.println(arr[0]);}
该代码输出结果为: 10 20 20
分析:首先初始化int[] arr={10},然后调用方法,方法中首先输出10,然后改变arr[0]=20,然后输出arr[0]=20,由于我们传递引用类型参数时,传递的是内存地址,在内存地址中,arr[0]的数值已经被修改为20,所以主方法中的arr[0]输出为20;
总结:
传递基本类型参数:传递的是参数值
传递引用类型参数:传递的是参数所引用的堆内存的地址