如果覆盖数组会发生什么

时间:2014-11-30 13:52:59

标签: java arrays

我有两个数组:

float a[][] = new float[3][3];
float b[][] = new float[7][7];

我想知道会发生什么,如果你现在写a = b; a中的所有值会发生什么?数组a现在有多长?它有哪些值?

2 个答案:

答案 0 :(得分:1)

在分配之后,a将引用与b相同的对象,因此其长度将为7,并且它将具有该数组的值。

如果没有对a引用的原始数组的其他引用,则它将有资格进行垃圾回收。否则,该数组将继续存在。

Java中的数组与任何其他对象完全相同。

答案 1 :(得分:0)

内部会发生这种情况 float a[][] = new float[3][3]; 创建一个数组对象并将其分配给一个

float b[][] = new float[7][7];创建一个数组对象并将其分配给b

a=b' b'对象被分配给a,现在a和b指向同一个数组对象,并且以前的对象有资格进行垃圾回收。