Eine ArrayList ist ein lokales Array mit Verweisen auf Objekte, die auf dem Heap gespeichert sind.
Eine generische Liste von Referenztypen ist ein lokales Array von Referenzen auf Objekte, die im Heap gespeichert sind.
Eine generische Liste von Werttypen ist ein lokales Array dieser Werttypen.
Es gibt zwei Bereiche des Speichers, die in den meisten Referenzen als "Stack" und "Heap" bezeichnet werden. Die meisten Leute, die diese Begriffe verwenden, haben keine Ahnung, warum. ("The Stack" mag ein Stapel sein, aber "The Heap" ist mit Sicherheit kein Heap). Ich bevorzuge die Begriffe "Over Here" und "Over There". Wenn sie in einer Box gespeichert sind, werden die Daten vom Typ Wert "Over There" gespeichert. Wenn sie in einem Array (vielleicht innerhalb einer generischen Liste) gespeichert werden, werden die wertartigen Daten "Over Here" gespeichert. "Hier drüben" ist besser.