Java学习日记-9

当数组名直接赋值给数组名的时候。

class Test3 {
    public static void main(String[] args) {
        int[] arr1 = new int[]{1,3,5,7,9,11,13,15};
        int[] arr2;
        for(int i = 0; i < arr1.length;i++){
            System.out.print(arr1[i]+" ");
        }
        System.out.println();
        //arr2 被arr1赋值上地址值,不能称为复制。
        arr2 = arr1;
        for(int i = 0; i < arr1.length;i++){
            if(i % 2 == 0){
                arr2[i] = i;
            }
            System.out.print(arr2[i]+" ");
        }
        System.out.println();
        for(int i = 0; i < arr1.length;i++){
            System.out.print(arr1[i]+" ");
        }
        System.out.println();
    }

我们能得到一个结论:
  此前输出数组arr1的元素,直到arr2对偶数索引进行重新赋值,再输出数组arr1时,会发现数组arr1的元素跟数组arr2一样。 说明了数组复制,就是在开辟的堆空间中把首元素地址继续赋值给栈的另一个变量,但是两个不同的数组名在栈中是同时指向同一个堆中的数组元素。 相当于windows中创建的快捷方式。

数组复制

    int[] arr3 = new int[arr1.length];
    for(int i = 0; i < arr3.length;i++){
        arr3[i] = arr1[i];
    }
}

//数组反转

class ArrayTest {
    public static void main(String[] args) {
       // 数组的反转

        String[] arr = new String[]{"GG","DD","JJ","MM","AA","BB"};
        for(int i = 0;i < arr.length/2;i++){
            String tmp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = tmp;
        }
        for(int j = 0; j < arr.length;j++){
            System.out.print(arr[j]+" ");
        }
        System.out.println();

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值