ArrayList class uses a dynamic array for storing the elements.
The important points :
ArrayList class can contain duplicate elements .
ArrayList class maintain the insertion orders .
ArrayList class is non synchronized.
ArrayList allows random access (array works at the index basics)
manipulate is slow because a lot of shifting needs to be occurred if any elements removed form the array list.
follow pic is hierarchy of ArrayList class (searching from google)
In jdk 7 a
this is declaration for ArrayList class in jdk 8:
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable