心得:以前通过练习知道,基本数据类型通过方法参数传值不接收返回值,是不会改变的,引用类型通过方法参数传值,进行修改是会改变的.但是不知道真正原理,今天学习了内存存储,结合以前学习的内存存储,恍然大悟,原理上图,还是要打好基础知识,厚积薄发。
![](https://img-blog.csdnimg.cn/img_convert/cb25b939487bf51107b2e492b49f6744.png)
1 /*
2 基本类型的值传递
3 */
4 public class MethodDemo{
5 //不同方法内存不共享
6 public static void main(String[] args) {
7 int i = 10;
8 swap(i);
9 System.out.println(i);//10
10 }
11 public static int swap(int i){
12 System.out.println(i);//10
13 i = 20;
14 System.out.println(i);//20
15 return i;
16 }
17 }
![](https://img-blog.csdnimg.cn/img_convert/769da3b678b554c6474daec5b20f59c9.png)
/*
引用数据类型的值传递
*/
public class MethodDemo2{
public static void main(String[] args) {
int[] array = {3,4};
swap(array);
System.out.println(array[0]+"---"+array[1]);//4 3
}
// 交换两个变量的位置
public static int[] swap(int[] array){
int temp = array[0];
array[0] = array[1];
array[1] = temp;
System.out.println(array[0]+"---"+array[1]);//4 3
return array;
}
}