方法传递参数的分类
1.基本数据类型
2.引用数据类型
package com.erlang.idea; //Java程序默认导入java.lang包下的所有类。 public class ScannerTest { public static void main(String[] args) { int number = 10; System.out.println("调用change方法前:"+number);//16 change(number); System.out.println("调用change方法前:"+number);//16 } public static void change(int number) { number = 18 ; } }
1.1基本数据类型的参数,形式参数的改变,不影响实际参数
依据:每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失
package com.erlang.idea; //Java程序默认导入java.lang包下的所有类。 public class DataTypeTest { public static void main(String[] args) { int[] arr = {1,2,3}; System.out.println("调用change方法前:"+arr[1]);//2 change(arr); System.out.println("调用change方法前:"+arr[1]);//18 } public static void change(int[] arr) { arr[1] = 18 ; } }
2.1对于引用类型的参数,形式参数的改变,影响实际参数的值
依据:引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果
原文地址:https://www.cnblogs.com/erlang-sh/p/12576422.html
时间: 2024-12-14 11:22:02