Kurz erklärt
Ein unveränderliches (immutables) Objekt kann nach seiner Erzeugung nicht mehr geändert werden. Statt es zu modifizieren, erzeugt man eine neue, angepasste Kopie.
Genauer
Unveränderliche Daten verhindern ganze Fehlerklassen: Niemand kann ein Objekt „hinter dem Rücken“ ändern, und mehrere Threads dürfen es ohne Sperren gleichzeitig lesen. Strings sind in Java, Python, C# und JavaScript unveränderlich; viele Sprachen bieten unveränderliche Sammlungen (Tupel, record, const, val, frozen).