Objekte zählen

drpingoo

Erfahrenes Mitglied
Hallo zusammen!

Ich muss gerade die Objekte bis zum jeweiligen Breakpoint (Markierung) zählen. Ich muss da jeweils angeben, was für ein Objekt es ist, den Inhalt und die ID. Jetzt bei Marikierung 1 beispielsweise, gibt mir der Debugger folgendes aus: im Anhang.

Ist die ID jeweils immer das, was bei id steht? Will bei einem Fall, bei mybuffer stehen da, wenn man das Pfeilchen öffnet 2 verschiedene Sachen da.

Werden da jeweils eigntl nur Objekte angezeigt? Weil sonst wären es ja 4.

PHP:
public class StringObject {

    void addString(String s1, String s2) {
        s1 = s1 + s2;
        // Markierung 3
    }

    public static void main(String[] args) {

        StringObject ref = new StringObject();
        String mystring = "Give ";
        StringBuffer mybuffer = new StringBuffer("Give ");
        // Markierung 1

        mystring = mystring + "me six ";
        mybuffer.append("me six ");
        // Markierung 2

        ref.addString(mystring, "lines");
        mybuffer.append("lines");
        // Markierung 4

        System.out.println(mystring);
        System.out.println(mybuffer);
    }
}
 

Anhänge

  • debug.jpg
    debug.jpg
    23,2 KB · Aufrufe: 58
Hallo,

im "Locals View" siehst du immer die Variablen die sich gerade auf dem aktuellen StackFrame befinden. Das sind bei Markierung1 eben:

args -> Methodenparameter sind auch lokale Variablen auf dem Stack...
ref
mystring
mybuffer

Die Id die du meinst ist die Instance-Id. Diese ist für eine Objektinstanz eindeutig,
analog zu Object.hashCode() bzw. System.identityHashCode(...);

Gruß Tom
 
Hallo,

du siehst lokale Variablen die auf Objekt-Instanzen bzw. primitve Werte verweisen können. Konkret siehst du in deinem Fall 4 unterschiedliche Objekt-Instanzen, wobei in wirklichkeit noch viel mehr Objekt-Instanzen (im Hintergrund) existieren. Wenn du beispielsweise
in der String Instanz in die Strutkur reinschaust siehst du, dass da intern noch ein char[] "lebt" welches die einzelnen Characters des String hält.

Gruß Tom
 
Genau, da hab ich auch schon reingeguckt;). Aber so für die Lösung der Übung kann ich schon sagen, das es 4 sind?

lg
 
Ich denke mal dass es um die von dir erstellten Objekte geht, von daher sollte 4 in Ordnung sein. Sonst frag doch nochmal nach beim Aufgabensteller.
 
Zurück