1、方法的值参数传递
下面代码,它会在控制台输出什么?
public class ArrayTest {public static void main(String[] args) {int number = 100;System.out.println(number);change(number);System.out.println(number);}public static void change(int number) {number = 200;}
}
很多人的第一想法可能就是:100和200,但是有真正的输出是:100和100。
运行结果:
下面,对前面的程序代码进行简单分析。
所以,可以得出的结论是:对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
2、方法的引用参数传递
也是先看代码,它会在控制台输出什么?
public class ArrayTest {public static void main(String[] args) {int[] arr = {10,20,30};System.out.println(arr[1]);change(arr);System.out.println(arr[1]);}public static void change(int[] arr) {arr[1] = 50;}
}
踩过坑之后,很多人的第一想法可能就是:20和20,但是有真正的输出是:20和50。
运行结果:
下面,对前面的程序代码进行简单分析。
(1)第一个输出的执行流程如下:
(2)执行change()方法的执行流程如下:
(3)第二个输出的执行流程如下:
所以,可以得出的结论是:对于引用数据类型的参数,形式参数的改变,影响实际参数的值
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
创作不易,如果对你有点帮助的话麻烦点个赞支持一下!
新手小白,欢迎留言指正!