Kurz erklärt
Datentypen, die keinen Wert direkt speichern, sondern eine Referenz (Verweis) auf ein Objekt im Speicher — im Gegensatz zu primitiven Typen wie byte oder double, die ihren Wert direkt enthalten.
Genauer
Weil eine Variable eines Referenztyps nur einen Verweis speichert, können mehrere Variablen auf dasselbe zugrunde liegende Objekt zeigen — eine Änderung über die eine Variable wirkt sich dann auch auf die andere aus, was bei primitiven Typen (jede Variable hat ihre eigene, unabhängige Kopie) nicht passiert. Klassische Beispiele für Referenztypen sind Objekte, Arrays und Strings.