Fragen zu Referenzen

Fragen zu Referenzen

Weitere Fragen aus anderen Bereichen zu diesem Thema:

javafrage Sat, 11/24/2018 - 12:57

1. Dereferenzieren von Objekten

1. Dereferenzieren von Objekten

Warum 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)

javafrage Fri, 12/30/2011 - 15:20

2. Referenzieren-Dereferenzieren

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 execute()
} // Ende Klasse Person

Zum Zeitpunkt 1 ergibt sich das folgende Modell für den Stapel (Stack) und den Objekt-Heap:

Heapdarstellung mit Javaobjekten

  • 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:

Heapdarstellung mit Javaobjekten

javafrage Thu, 09/05/2013 - 08:58