copy函数和 arr1=arr2 *****(为什么用copy方法而不是直接赋值)

 //TODO  备份数组
    public static int[] copyArray(int[] arr) {
    
    
        int[] ans = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
    
    
            ans[i] = arr[i];
        }
        return ans;
    }

都是备份数据,copyArray 方法和 arr2=arr1有什么区别吗
在这里插入图片描述

arr2=arr1只是让arr2指向和arr1相同的地址,而不是把arr1的数组赋给arr2,但是copyArray 方法不同,copy方法是重新在内存上新建一个数组,长度和第一个数组一致,将第一个数组的每一个数一个个赋值给新建的数组(相同的位置)

引用之前相等(arr2=arr1),地址共享

猜你喜欢

转载自blog.csdn.net/qq_46906413/article/details/122718660