栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号