Fragen zu Referenzen
Fragen zu ReferenzenWeitere Fragen aus anderen Bereichen zu diesem Thema:
- Anzahl von Instanzen (Objekte) erkennen
- Implementieren eine Klasse (Pakete, Konstruktoren, Datenkapselung, Methoden) (enthält auch Teilfragen anderer Bereiche)
- 1309 views
1. Dereferenzieren von Objekten
1. Dereferenzieren von ObjektenWarum soll man Objekte dereferenzieren von denen man sicher ist, dass man sie nicht mehr benötigt. Dereferenzieren bedeutet die Referenzvariable mit einem null Wert zu belegen?
Niveau | 1 |
Schwierigkeitsgrad | mittel |
Zeit |
3 Minuten |
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
- 6157 views
2. Referenzieren-Dereferenzieren
2. Referenzieren-Dereferenzierenpublic class Person { public Person vater; public Person mutter; public static void main (String[] args ) { Person p1 = new Person(); Person p2 = new Person(); p1.vater = p2; p2 = null; // Zeitpunkt 1 execute(p1); // Zeitpunkt 3 } // Ende main public static void execute(Person p) { Person[] persFeld = new Person[2]; persFeld[1] = p; persFeld[0] = new Person(); persFeld[0].vater = new Person(); persFeld[0].mutter = new Person(); // Zeitpunkt 2 } // Ende execute() } // Ende Klasse Person
Zum Zeitpunkt 1 ergibt sich das folgende Modell für den Stapel (Stack) und den Objekt-Heap:
- Aufgabe 1: Tragen Sie im Diagramm die zum Zeitpunkt 2 angelegten Objekte auf Heap und Stack ein. Nutzen Sie bitte den Diagrammstil wie vorgegeben.
- Aufgabe 2: Markieren Sie das Objektmodell zum Zeitpunkt 3 im gleichen Diagramm:
- Markieren Sie alle nicht erreichbaren Objekte mit der Bemerkung: „nicht erreichbar“. Diese Objekte sind Kandidaten zum Löschen durch den „Garbagecollector“,
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Niveau | 1 |
Schwierigkeitsgrad | mittel |
Zeit | 6+6 Minuten |
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Antwort zu Frage 1: Dereferenzieren von Objekten
Durch das explizite Dereferenzieren kann man „Memory leaks“ vorbeugen. Die dereferenzierten Objekte können dann wahrscheinlicher vom Garbage-collector gelöscht werden
Antwort zu Frage 2: Referenzieren-Dereferenzieren
public class Person { public Person vater; public Person mutter; public static void main (String[] args ) { Person p1 = new Person(); Person p2 = new Person(); p1.vater = p2; p2 = null; // Zeitpunkt 1 execute(p1); // Zeitpunkt 3 } // Ende main public static void execute(Person p) { Person[] persFeld = new Person[2]; persFeld[1] = p; persFeld[0] = new Person(); persFeld[0].vater = new Person(); persFeld[0].mutter = new Person(); // Zeitpunkt 2 } // Ende aufrufen() } // Ende Klasse Person
Zum Zeitpunkt 3 ergibt sich das folgende Modell für den Stapel (Stack) und den Objekt-Heap:
- 5045 views