# Speicherabbild java



## rockhound24 (26. Jan 2011)

Hallo Zusammen.

Ich habe mal eine Frage zum Speicherabbild in Java. Hoffe ihr könnt mir helfen:
Gegeben sind die folgenden Klassen:


```
public class IntKlasse {
    public int a;
    public IntKlasse (int a) {
        this.a = a;
    }
}
public class RefIntKlasse {
    public IntKlasse x;
    public int y;
    public RefIntKlasse(int u, int v) {
        x = new IntKlasse(u);
        y = v;
    }
}

public class KlassenTest {
    public static void assign1 (RefIntKlasse f, RefIntKlasse g) {
        g.x.a = f.x.a;
        g.y = f.y;
    }

public static void assign2 (RefIntKlasse f, RefIntKlasse g) {
    g.x = f.x;
    g.y = f.y;
}

public static void assign3 (RefIntKlasse f, RefIntKlasse g) {
    g = f;
}
public static void main (String args[]) {
    RefIntKlasse p = new RefIntKlasse(5,7);
    RefIntKlasse q = new RefIntKlasse(1,2);

// Hier folgt nun eine Zuweisungsoperation:
// ***
}
}
```

Welches Speicherabbild ergibt sich, wenn die Zeile // *** ersetzt wird durch
assign1(p, q);


Hoffe mir kann schnell jemand helfen 
lg


----------



## SlaterB (26. Jan 2011)

wie ist denn der Begriff 'Speicherabbild' definiert? die Wiki-Version klingt eher aufwendig,

kannst du das Programm nicht ausführen und dann alle Variablen anschauen?


----------



## rockhound24 (26. Jan 2011)

Das Speicherabbild soll graphisch dargestellt werden. Könnte die ein Bild schicken dann verstehst du das sicher besser. 

Lg


----------



## fastjack (26. Jan 2011)

Mal Dir die Objekte doch auf, Referenzen sind dann Pfeile zu anderen Objekten, Objekte einfache Kuller  Dann siehst Du am einfachsten, was wo hin zeigt.


----------



## rockhound24 (26. Jan 2011)




----------



## SlaterB (26. Jan 2011)

du kannst doch zumindest die Werte von a und y mit System.out.println() nachschauen, 
aber da passiert ja so wenig, dass man das auch manuell sehr leicht verfolgen kann

q.x.a war vorher 1 und ist nun 5, ist das eine so neue Info?


----------

