|
关于数组值的改变 为什么调用方法后值不变呢
- public static void main(String[] args) {
- String[] str={"a","b","c","d"};
- test1(str);
- System.out.println(str);
- System.out.println(Arrays.toString(str));
- }
- public static void test1(String[] a){
- String[] b={"1","2"};
- System.out.println(b);
- a=b;
-
- }<img src="https://img-bbs.csdn.net/upload/202103/26/1616735909_875737.png" alt="">
复制代码
清搜索 java 方法 值传递/引用传递
这个会讲的比较清楚
简单的来说,方法的形参传递的是该对象地址的副本,所以你改变副本的内容是对方法体外没有任何影响,如果你修改的是地址指向对象的内容,那就能看到.
打个比方来说,我有一张地图,当你需要的时候,我复印了一张给你,然后你篡改了这张地图的内容,其实对本体没有任何影响,但你直接去把地图上对应的房子装修了,那就有影响了.
当然基本类型和引用类型在方法传递上其实本质上是一样的,只是基本类型的值就是本身,不存在指向的对象,引用类型是一个内存地址
|
|