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