16.java如何使用数组?数组的地址转移问题是?

1.如何使用数组?

public static void main(String[] args) {
    //声明一个int数组
    //这里是new一个,有且只能保存int类型的数据
    //但是这个array依然是一个引用型的数据类型
    //new 的作用是在内存(堆区)中申请一个连续的内存空间——【堆区】
    //开发中的一个引用数据类型实际上是一个指向其他内存空间的一个数据类型
    //引用数据类型的变量中存储的内容是其他内存空间的【首地址】
    //当cup访问到【引用数据类型】变量时,会得到其存储地址,然后直接跳转到对应的内存空间中,执行代码,获取数据,操作内容;
    int[] array = new int[10];
    //数组的正常使用
    //给数组赋值
    //数组下表从0开始
    array[0] = 10;
    array[1] = 11;
    //那么如果超出一开始设置的数组的范围会怎么样?
    array[30] = 13; //报异常——数组下标越界异常 java.lang.ArrayIndexOutOfBoundsException
    //取出数组中的值,取出下标为1的值
    int a1 = array[1];
    System.out.println(a1);
}

2.数组的地址转移问题是?

所以问题的原因是 ‘=’赋值号把地址指向给变更了

public static void main(String[] args) {
    int[] arr1 = new int[10];
    int[] arr2 = new int[10];
    arr1[0] = 10;
    arr2[0] = 20;
    System.out.println("arr1[0]:" + arr1[0]); // 10 没问题
    System.out.println("arr2[0]:" + arr2[0]); // 20 没问题
    arr1[5] = 50;
    arr2 = arr1; //此时arr2 与 arr1指向的是同一个地址了
    arr1[0] = 30;
    arr2[0] = 100; //此时arr2[0] = arr1[0] = 100
    System.out.println("arr1[0]:" + arr1[0]); //100 所以这个是100
    System.out.println("arr2[0]:" + arr2[0]); //100 所以也是100
    System.out.println("arr2[5]:" + arr2[5]); //此时arr1[5] = arr2[5] = 50
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值