2024/11/3
目录
一、情景概述
二、底层原理分析
三、注意事项
我们先来看下面的一段代码:
运行后我们不难发现,打印出来的是同一个地址,说明这两个变量指向了同一个数组对象。
当运行了arr2[1] = 99; 这行代码后,发现arr1[1]打印出来的也是99,这就说明当两个或以上变量指向同一个数组时,一个变量修改了数组对象里的内容,另一个变量过来可以看见最新修改的值。
这就好比小明将家里的钥匙给了小红(相当于int[] arr2 = arr1;),此时小红就可以去小明家拿东西(相当于arr2[1] = 99;),小明回到家会发现东西被取走了(相当于System.out.println(arr1[1]);)
这里只讲解int[] arr2 = arr1;这行代码,具体原理图和其他行的代码就不多赘述,不清楚的看我之前讲过的
int[] arr2 = arr1;arr1会将存储的数组变量的地址拷贝一份给arr2,此时arr2也会通过该地址指向数组对象了,这就是多个变量指向同一个数组的原理。
如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象
此时arr[0]或arr.length会出现NullPointerException异常,即空指针异常,常见的异常建议记住,更多异常可以看我这篇:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/73285.html