übersetzt 10.06.03; überarbeitet 15.12.03, 21.06.04, 09.10.06, 06.12.10; Deutsche Übersetzung Heinrich Gailer

Quiz über Objektreferenzen

Das ist ein Übungsquiz. Das Ergebnis wird nicht gespeichert.

Hinweise: Entscheiden Sie sich bei jeder Frage für die beste Antwort. Klicken Sie dann auf das entsprechende Optionskästchen, um diese Antwort auszuwählen. Sie können Ihre Antwort jederzeit ändern. Sobald das Quiz bewertet wird, erscheint die richtige Antwort in der Textbox unterhalb der Frage.


1. Betrachten Sie die folgenden Deklarationen:

int flaeche;
String name;
Welche der folgenden Aussagen ist wahr?

a.    flaeche ist eine primitive Variable und name ist eine Referenzvariable.
b.    flaeche ist eine Referenzvariable und name ist eine primitive Variable.
c.    Beide sind primitive Variablen.
d.    Beide sind Referenzvariablen.

2. Betrachten Sie die folgenden Codezeilen:

int flaeche;
String name;
Wie viele Objekte wurden erzeugt?

a.    Keins — es gibt eine Objektreferenzvariable, aber noch kein Objekt.
b.    Eins — es gibt eine Objektreferenzvariable, also muss es ein Objekt geben.
c.    Zwei — eins für jede Variable.
d.    Zwei — eins für jeden Typ.

3. Betrachten Sie die folgenden Codezeilen:

String strA;
String strB = new String("Kekse");
Wie viele Objekte wurden erzeugt?

a.    null
b.    eins
c.    zwei
d.    drei

4. Was wird durch den folgenden Codeteil auf den Bildschirm ausgegeben:

String strA;
String strB = new String("Kekse");

System.out.print  ( strB );
strA = new String(" Schoko");
System.out.println( strA );

a.    Kekse
b.    Schoko
c.    Kekse Schoko
d.    Schoko Kekse

5. Was wird durch den folgenden Codeteil auf den Bildschirm ausgegeben:

String strA = new String("Geroestete ");
String strB = new String("Kastanien ");

strA = strB;
System.out.print  ( strA );
System.out.println( strB );

a.    Geroestete Kastanien
b.    Kastanien Geroestete
c.    Geroestete Geroestete
d.    Kastanien Kastanien

6. Was wird durch den folgenden Codeteil auf den Bildschirm ausgegeben:

String strA = new String("Geroestete ");
String strB = new String("Kastanien ");

strA = strB;
if ( strA == strB )
  System.out.println("Zwei Kopien von einer Referenz.");
else
  System.out.println("Zwei verschiedene Referenzen.");

a.    Zwei Kopien von einer Referenz.
b.    Zwei verschiedene Referenzen.
c.    Zwei Kopien von einer Referenz.
           Zwei verschiedene Referenzen.
d.    Geroestete Kastanien Referenzen.

7. Betrachten Sie den folgenden Codeteil:

String strA = new String("Geroestete ");
String strB = new String("Kastanien ");

strA = strB;
Wie viele Objekte wurden erzeugt? Nachdem die letzte Anweisung ausgeführt wurde, wie viele Objekte sind jetzt erreichbar (ohne den Datenausschuss mitzuzählen)?

a.    erzeugt: 0   jetzt erreichbar: 0
b.    erzeugt: 2   jetzt erreichbar: 1
c.    erzeugt: 1   jetzt erreichbar: 1
d.    erzeugt: 2   jetzt erreichbar: 2

8. Betrachten Sie den folgenden Codeteil:

String strA = new String("Geroestete ");
strA        = new String("Getoastete ");
strA        = new String("Gegrillte ");
strA        = new String("Gebackene ");
strA        = new String("Bohnen ");

Wie viele Objekte (insgesamt) wurden erzeugt? Nachdem die letzte Anweisung ausgeführt wurde, wie viele Objekte sind jetzt erreichbar (ohne den Datenausschuss mitzuzählen)?

a.    Dieser Codeteil ist nicht korrekt.
b.    erzeugt: 5   jetzt erreichbar: 5
c.    erzeugt: 1   jetzt erreichbar: 1
d.    erzeugt: 5   jetzt erreichbar: 1

9. Betrachten Sie den folgenden Codeteil:

String strA = new String("Geroestete ");
String strB = new String("Getoastete ");
String strC = new String("Gegrillte ");
String strD = new String("Gebackene ");
String strE = new String("Bohnen ");
Wie viele Objekte (insgesamt) wurden erzeugt? Nachdem die letzte Anweisung ausgeführt wurde, wie viele Objekte sind jetzt erreichbar (ohne den Datenausschuss mitzuzählen)?

a.    Dieser Codeteil ist nicht korrekt.
b.    erzeugt: 5   jetzt erreichbar: 5
c.    erzeugt: 1   jetzt erreichbar: 1
d.    erzeugt: 5   jetzt erreichbar: 1

10. Betrachten Sie den folgenden Codeteil:

String strA = new String("Geroestete ");
String strB = strA;
String strC = strA;
String strD = strA;
String strE = strA;
Wie viele Objekte (insgesamt) wurden erzeugt? Nachdem die letzte Anweisung ausgeführt wurde, wie viele Objekte sind jetzt erreichbar (ohne den Datenausschuss mitzuzählen)?

a.    Dieser Codeteil ist nicht korrekt.
b.    erzeugt: 5   jetzt erreichbar: 5
c.    erzeugt: 1   jetzt erreichbar: 1
d.    erzeugt: 5   jetzt erreichbar: 1

Richtige Antworten:       in Prozent:       Bewertung:   

Inhalt (Sollten Sie gerade von einer anderen Seite hierher zurückgekommen sein oder diese Seite neu geladen haben, kann es sein, dass Sie erneut auf jede Ihrer ausgewählten Antworten klicken müssen, damit das Bewertungsprogramm korrekt arbeitet.)

Um die alten Antworten zu löschen, halten Sie die Strg-Taste gedrückt und laden dann die Seite neu (Firefox). Bei anderen Browsern funktioniert das in Verbindung mit der Umschalt- bzw. Strg+Umschalt-Taste. Beim Internet Explorer 8 muss die Seite verlassen und erneut aufgerufen werden.