java实例数组不需要初始化数组大小吗?



这是我的代码。这是任何具有实例数组队列的抽象类。我从不在任何地方分配数组大小。但我仍然可以使用该数组,并且可以迭代以将数据添加到数组中。这怎么可能?

public abstract class Operations {
int queue[];
int head;
int tail;
public abstract String enqueue(int value);
public abstract String dequeue();
public abstract String peek();
public abstract String delete();
public abstract boolean isEmpty();
public abstract boolean isFull();
public abstract void display();
}

简化了变量queue该变量仅将地址保存在数组开头的内存位置,在本例中null在开头

在代码中的某个时刻,您使用new int[..]为其分配一个新数组(否则您将获得NullPointerException),然后分配所需的内存并将其分配给变量。

更新: 我已经执行了 OP 的代码,并且正如预期的那样在调用enqueue时得到NullPointerException.

Choose option:
1. Enqueue
2. Dequeue
3. Peek
4. Delete
5. Exit
1
Enter a value to enqueue:
12
Exception in thread "main" java.lang.NullPointerException
at test.Queue.isFull(Queue.java:16)
at test.Queue.enqueue(Queue.java:50)
at test.Test.main(Test.java:21)

最新更新