3 回答
TA贡献1829条经验 获得超13个赞
在 Java 中,变量名称保留实际数组的引用。因此st=new Object[20]
,创建一个大小为 20 的数组并将引用分配给st
,以及newSt=new Object[40]
创建一个大小为 40 的数组并将引用分配给newSt
。
因此,当我们设置时,我们只是分配 所引用的st=newSt
数组的引用。现在我们可以用来访问第二个数组的所有值。st
newSt
st
它不会对数组进行任何类型的合并、并集或交集。
TA贡献1775条经验 获得超8个赞
我认为您很困惑,因为您试图将其视为结构分配,但它是一个参考名称。
当您secondArray = firstArray
将变量设置secondArray
为引用时firstArry
,两个具有不同名称的变量引用内存中的同一对象。您之前的初始化secondArray
将会丢失。
因此, 的大小newSt
和所有对象都与 for 相同,st
因为newSt
isst
但具有不同的名称。
您所想的就像是一个使用另一个数组和大小作为参数的构造函数。
TA贡献1719条经验 获得超6个赞
长度将是20...
你也可以自己测试一下:
Object[] st = new Object[20];
System.out.println("st: " + st.length);
Object[] newSt = new Object[40];
newSt = st; // newSt was Object[40], st is Object[20] => newSt is now Object[20].
System.out.println("newSt: " + newSt.length);
添加回答
举报