Werttypen und Referenztypen

Beginner Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Primitive Typen (int, boolean, ...) speichern Werte direkt. Referenztypen speichern Verweise auf Objekte auf dem Heap. Zuweisung einer Referenz kopiert den Verweis, nicht das Objekt.

Autoboxing wandelt int in Integer. Gleichheit: == vergleicht bei Referenzen Identität, equals den Inhalt (wenn überschrieben).

Beispiel: Zwei new Integer(1000) sind nicht unbedingt ==, aber equals kann true liefern.

$$x\texttt{.equals}(y)\nRightarrow x\equiv y$$

Wo gebraucht

Autoboxing in Collections, Identität versus Gleichheit in Caches, warum int in hot loops und Integer in Maps landet. In APIs klären Wert-/Referenzsemantik Serialisierung und Gleichheitstests.

Vertiefung

Primitive Java-Werte werden bei Zuweisung als Wert kopiert. Bei Objekten wird die Referenz kopiert, sodass zwei Variablen dasselbe veränderliche Objekt bezeichnen können. Eine Änderung über eine Referenz ist dann über die andere sichtbar.

Parameterübergabe erfolgt immer durch Wertkopie. Bei einem Objektparameter wird also die Referenz als Wert kopiert. Die Methode kann das bezeichnete Objekt ändern, aber eine Neuzuweisung des Parameters ersetzt nicht die Variable des Aufrufers.

Unveränderliche Objekte verringern die Folgen geteilter Referenzen. Aliasing bleibt vorhanden, ist jedoch weniger riskant, weil kein Beobachter den gemeinsamen Zustand verändern kann.

Schwierigkeitsstufen

  1. Wertkopien und Referenzkopien in Zuweisungen verfolgen.
  2. Mutation von Parameterneuzuweisung unterscheiden.
  3. Aliasing durch Unveränderlichkeit oder defensive Kopien kontrollieren.

Fallstricke

Java besitzt keinen Call-by-reference-Mechanismus für lokale Variablen. == vergleicht bei Objekten Referenzen, nicht automatisch deren fachlichen Inhalt.

University approvals: 0
Tasks
Question 1

Was vergleicht == bei zwei Variablen vom Typ String (Objektreferenzen)?

Question 2

Was bewirkt die Neuzuweisung eines Objektparameters innerhalb einer Java-Methode?

Question 3

Vertausche zwei Elemente desselben int-Arrays über ihre Indizes.

Hint

Arrayelemente werden mit values[i] gelesen und geschrieben. Für einen Tausch ist eine lokale Variable vom Typ int verfügbar.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Beginner
  • Completed: 0 users
Creator
Best
Best
BestBuddy