What is the difference between a null array and an empty array?

Technically speaking, there’s no such thing as a null array; but since arrays are objects, array types are reference types (that is: array variables just hold references to arrays), and this means that an array variable can be null rather than actually pointing to an array:

int[] notAnArray = null;

An empty array is an array of length zero; it has no elements:

int[] emptyArray = new int[0];

(and can never have elements, because an array’s length never changes after it’s created).

When you create a non-empty array without specifying values for its elements, they default to zero-like values — 0 for an integer array, null for an array of an object type, etc.; so, this:

int[] arrayOfThreeZeroes = new int[3];

is the same as this:

int[] arrayOfThreeZeroes = { 0, 0, 0 };

(though these values can be re-assigned afterward; the array’s length cannot change, but its elements can change).

Leave a Comment