Yes, we're now running our Black Friday Sale. All Access and Pro are 33% off until 2nd December, 2025:
Difference Between null and Empty Array in Java
Last updated: August 10, 2024
1. Overview
In this tutorial, we’ll explore the difference between null and empty arrays in Java. While they might sound similar, null and empty arrays have distinct behaviors and uses crucial for proper handling.
Let’s explore how they work and why they matter.
2. null Array in Java
A null array in Java indicates that the array reference doesn’t point to any object in memory. Java initializes reference variables, including arrays, to null by default unless we explicitly assign a value.
If we attempt to access or manipulate a null array, it triggers a NullPointerException, a common error indicating an attempt to use an uninitialized object reference:
@Test
public void givenNullArray_whenAccessLength_thenThrowsNullPointerException() {
int[] nullArray = null;
assertThrows(NullPointerException.class, () -> {
int length = nullArray.length;
});
}
In the test case above, we attempt to access the length of a null array and it results in a NullPointerException. The test case executes without failure, verifying that a NullPointerException was thrown.
Proper handling of null arrays typically involves checking for null before performing any operations to avoid runtime exceptions.
3. Empty Array in Java
An empty array in Java is an array that has been instantiated but contains zero elements. This means it’s a valid array object and can be used in operations, although it doesn’t hold any values. When we instantiate an empty array, Java allocates memory for the array structure but stores no elements.
It’s important to note that when we create a non-empty array without specifying values for its elements, they default to zero-like values — 0 for an integer array, false for a boolean array, and null for an object array:
@Test
public void givenEmptyArray_whenCheckLength_thenReturnsZero() {
int[] emptyArray = new int[0];
assertEquals(0, emptyArray.length);
}
The above test case executes successfully, demonstrating that an empty array has a zero-length and doesn’t cause any exceptions when accessed.
Empty arrays are often used to initialize an array with a fixed size later or to signify that no elements are currently present.
4. Conclusion
In this article, we have examined the distinctions between null and empty arrays in Java. A null array signifies that the array reference doesn’t point to any object, leading to potential NullPointerException errors if accessed without proper null checks. On the other hand, an empty array is a valid, instantiated array with no elements, providing a length of zero and enabling safe operations.
The code backing this article is available on GitHub. Once you're logged in as a Baeldung Pro Member, start learning and coding on the project.
















