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异常,即空指针异常,常见的异常建议记住,更多异常可以看我这篇:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/38327.html