Datenstrukturen die diese Fähigkeit nicht besitzen nur im Hauptspeicher des Computers und gehen verloren sobald Programm endet von dem sie angelegt wurden. "flüchtigen" Datenstrukturen heissen auch transient . Persistente Datenstrukturen können dagegen beim Ende Programms gespeichert und beim erneuten Start aus Speichermedium wiederhergestellt werden.
Bei komplexeren Laufzeitumgebungen wie z.B. der Java -Architektur J2EE unterscheidet man zwischen container-basierter Persistenz (die Laufzeitumgebung übernimmt das Speichern und und komponentenbasierter Persistenz]] (die Komponente muss selbst speichern und wiederherstellen).
Beispiele aus dem Java-Umfeld sind die Serialisierung für das Speichern von Java-Objekten in und JDBC für das Speichern in Datenbanken.