Why does accessing numbers[3] fail for the array {1, 2, 3}?
numbers[3]
{1, 2, 3}
Index 3 refers to a nonexistent zero-th element because Java starts at 1.
The three-element array has valid indexes 0, 1, and 2, so index 3 is out of bounds.
The initializer creates an empty array with no indexes.
Java arrays are not allowed to contain the value 3.