An ArrayList is a resizable-array implementation of the List interface in Java. It allows you to store a collection of elements, which can be dynamically increased or decreased in size.