/* 方法调用中的参数传递问题 1 方法参数是基本数据类型 */ public class MethodDemo_3{ public static void main(String[] args){ int a = 1 ; int b = 2 ; change(a,b); System.out.println(a);//1 System.out.println(b);//2 /*具体见内存图,change在方法栈内运行完毕后并没有给返回值 也就是说运行后就在栈中出去了,与main中a,b无关系*/ } public static void change(int a,int b){ a = a+b; b = b+a; } }
/* 方法调用中的参数传递问题 2 方法参数是引用类型 传递的是内存地址 */ public class MethodDemo_4{ public static void main(String[] args){ int [] arr = {1,2,3,4}; System.out.println(arr[2]);//3 change(arr); System.out.println(arr[2]);//100,原因见内存图 // main中arr与change中arr指向同一个内存地址,改一个都改了 } public static void change(int[] arr){ arr[2] = 100; } public static void change(int a,int b){ //与上面构成方法重载 a = a+b; b = b+a; } }