对象句柄和数组数组

时间:2010-06-01 11:31:41

标签: java blackberry

在黑莓文档中,他们说数组需要一个对象句柄:

int[] array; // 1 object handle

数组数组需要多少个句柄?

int[][] array = new int[4][2]; // how many handles?

我无法弄清楚它是否会是单一的,因为毕竟数组可以被解释为单个存储器,或者它是倍数(在这种情况下为5)因为每个元素中有一个第一级数组?

1 个答案:

答案 0 :(得分:3)

Java没有多维数组,正如您所知道的那样。它有数组数组。

鉴于此声明:

int[][] array = new int[4][2];

有4个int[]数组,每个数组都有2 int个元素。

Object o1 = array[0];
Object o2 = array[1];
Object o3 = array[2];
Object o4 = array[3];

因此,这意味着array也是Object[]

Object[] oX = array;

仅仅因为你有一个int[][],并不意味着每个int[]都是不同的。

int[][] weird = new int[4][];
weird[0] = weird[1] = weird[2] = weird[3] = new int[5];

现在只有一个int[],每个weird[i]都会分享此引用。

weird[0][2] = 5;
System.out.println(weird[3][2]); // prints "5"