Kurz erklärt
Packages gruppieren zusammengehörige Java-Klassen in einem Namensraum (z. B. java.util); die API ist die Gesamtheit der öffentlich nutzbaren Klassen/Methoden, die Java bzw. eine Bibliothek bereitstellt.
Genauer
Ein Package entspricht meist einer Ordnerstruktur (java.util.ArrayList liegt z. B. im Ordner java/util/). Um Klassen aus einem anderen Package zu nutzen, braucht es ein import-Statement am Dateianfang. Die Java Standard Library selbst ist eine riesige, mitgelieferte API mit fertigen Packages für Collections, I/O, Networking und mehr.