Quelle est la différence entre Array, Arrays, ArrayList, Vector,....., pourquoi autant de classes différentes et comment choisir ?

Merci d'avance