java方法的引用传递和值传递
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)第二个输出的执行流程如下:
所以,可以得出的结论是:对于引用数据类型的参数,形式参数的改变,影响实际参数的值
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
创作不易,如果对你有点帮助的话麻烦点个赞支持一下!
新手小白,欢迎留言指正!