我正在阅读Herbert Schildt的《Java入门指南(第5版)》,发现了一种奇特的数组声明方法。
以下是我个人的示例:
public int[] generateArray(int size) {
int[] x = new int[size+1];
return x;
}
int[] y = generateArray(3);
现在,这位作者所做的是总是将数组创建为大小为+1
。我不明白他为什么要这样做。这是为了避免ArrayOutOfBounds
异常吗?此外,如果他已经要增加1,为什么不直接发送4而不是3呢?
以下是他书中的一个例子,以消除对这个问题的疑惑:
// A dynamic queue.
class DynQueue implements ICharQ {
private char q[];
private int putLoc, getLoc;
public DynQueue(int size) {
q = new char[size+1]; //allocate memory
putLoc = getLoc = 0;
}
}