The short answer is that an array has a fixed capacity, whereas an ArrayList can change its capacity as required.
Arrays are set up without using a special class; ArrayLists (capital A and L) are set up using the java.util.ArrayList class.
You can find out about arrays
here in the Java tutorial, and about ArrayLists in the API specification or
here in the Java tutorial. CR