为了账号安全,请及时绑定邮箱和手机立即绑定

`array = array` 是如何工作的?

`array = array` 是如何工作的?

精慕HU 2021-06-07 13:40:01
我想了解array = array实际的作用。为什么编辑data1会导致data2在此过程中稍后发生更改?String[][] data1 = new String[5][1];String[][] data2 = new String[1][1];data1[0][0] = "Test 1";data2 = data1;//Prints "Test 1"System.out.println(data2[0][0]);data1[0][0] = "NEW";//Prints "NEW"System.out.println(data2[0][0]);
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

在Java中,数组名实际上保存了数组的起始地址(类似于c/c++)。数组索引是起始地址的偏移量。

因此,当您使用 时array2 = array1,您实际上是在告诉编译器:

"Let array2 hold the same address as array1"


查看完整回答
反对 回复 2021-06-10
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

data2 = data1;

4行,您的订单将指从现在开始data1指的地方data2。所以,两个引用都指向同一个对象。使用其中一个引用进行的任何修改都会被对方看到。这就是=运算符在 Java 中的实际作用。从技术上讲,这种方式是参考复制


查看完整回答
反对 回复 2021-06-10
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

正如在前面的答案中已经提到的那样,当您使用=运算符时它指的是同一位置,更改会反映在两者中。

如果你不想那样,那么你应该使用克隆数组。您可以参考此答案以了解如何操作。


查看完整回答
反对 回复 2021-06-10
  • 3 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信