Once you create an array in Java, its length cannot change. You cannot append an element, insert in the middle, or remove a slot. The size is set at creation and stays that way for the life of the array.
If you need to "grow" an array, you have to create a new, larger array and copy the old elements into it:
int[] old = {1, 2, 3};
int[] bigger = Arrays.copyOf(old, old.length + 1);
bigger[3] = 4;
This works, but it is tedious and inefficient if you do it often. Every copy walks through the entire existing array.
This is the exact problem that ArrayList solves. In the next section, you will see how ArrayList wraps an array internally and handles the resizing for you, so you can add and remove elements without writing copy logic yourself.