Guten Tag,
ich habe ein kleines Problem mit dem Verständnis mit Speicherzustände in Java.
Und zwar zeichne ich als Übung ein Diagramm mit verschiedenen Pointer.
Die Aufgabe ist diese:
Es wird nun die Methode main ausgeführt. Stellen Sie den Speicher (d.h. alle (implizit) im Programm vorkommenden
Arrays (außer args) und Objekte) bei jedem Aufruf der Methode f und vor Ende des Programms
graphisch dar. Es müssen also insgesamt drei Speicherzustände dargestellt werden.
Im Anhang habe ich mein Ansatz bzw meine Lösung gepostet.
Wäre das den richtig oder sollte ich bei 1) Speicherzustand nur ein Array (int[]) und nur ein Objekt (Wrapper) haben?
Falls ich irgendwo ein Fehler gemacht habe, könnt ihr mich aufklären? Wäre sehr lieb, weil ich das Thema echt verstehen möchte.
Danke im Voraus.
ich habe ein kleines Problem mit dem Verständnis mit Speicherzustände in Java.
Und zwar zeichne ich als Übung ein Diagramm mit verschiedenen Pointer.
Die Aufgabe ist diese:
Code:
public class HSeiteneffekte {
public static void main ( String [] args ) {
Wrapper w1 = new Wrapper ();
Wrapper w2 = w1;
w1. setI (1);
w2. setI (2);
int x = 3;
int [] a = { 1, 2 };
f(w1 , x, new int [] { 4, 5 });
f(w2 , x, a);
// Speicherzustand hier zeichnen
}
public static void f( Wrapper w, int x, int [] a) {
// Speicherzustand hier zeichnen
x = a [0];
a [0] = w. getI ();
w. setI (x);
}
}
public class Wrapper {
private int i;
public void setI ( int x) {
i = x;
}
public int getI () {
return i;
}
}
Es wird nun die Methode main ausgeführt. Stellen Sie den Speicher (d.h. alle (implizit) im Programm vorkommenden
Arrays (außer args) und Objekte) bei jedem Aufruf der Methode f und vor Ende des Programms
graphisch dar. Es müssen also insgesamt drei Speicherzustände dargestellt werden.
Im Anhang habe ich mein Ansatz bzw meine Lösung gepostet.
Wäre das den richtig oder sollte ich bei 1) Speicherzustand nur ein Array (int[]) und nur ein Objekt (Wrapper) haben?
Falls ich irgendwo ein Fehler gemacht habe, könnt ihr mich aufklären? Wäre sehr lieb, weil ich das Thema echt verstehen möchte.
Danke im Voraus.