SCJP Chapter 3 Frage 10. Falsche Antwort?

H2SO3-

Bekanntes Mitglied
Hi,

im SCJP Buch im Chapter 3 ist die 3 Frage folgendes.

Java:
public class Dozens {
	int[] dz = {1,2,3,4,5,6};
}

public class Eggs {

	public static void main(String[] args){
		Dozens [] da = new Dozens[3];
		da[0] = new Dozens();
		Dozens d = new Dozens();
		da[1] = d;
		d = null;
		da[1] = null;
	}
}

Die Frage ist nun wie viele Objekte am ende für den garbage collector noch da sind.

Als Antwort steht da 2. Ich denke jedoch es sollten 3 sein. Zum einem das new Dozens in da[0] mit dem internen array (sind 2) und dann kommt ja noch das Dozens[] da hinzu. Also sind es zusammen 3 und nicht 2.

Ist die Antwort im Buch falsch oder habe ich einen denkfehler?
 

H2SO3-

Bekanntes Mitglied
dass das object da[1] nicht mehr vorhanden ist ist mir klar. Es geht um das Object da[0] und um das array da[] ansich. die beiden sind ja noch da
 

H2SO3-

Bekanntes Mitglied
nein eben nicht

Object 1: Dozens [] da
Object2: da[0] = new Dozens();
Object3: das int[] dz im da[0] = new Dozens(); Object

alles klar?
 

Marco13

Top Contributor
Abgesehen von der (soweit ich das bisher gesehen habe) Praxisferne ergibt sich aus dieser Frage ein weiterer Grund, warum man diesen *CJP-Fragen skeptisch gegenüber stehen sollte: An dieser Stelle ist nicht klar, was mit "Objekte" gemeint ist: Nur die Objekte, die von der main aus sichtbar sind, oder auch deren internen Objekte? (Und blöd-provokativ: Ist der main-Thread nicht auch ein Objekt?). Der Antwort nach sind nur die von der main erstellten gemeint.
 

H2SO3-

Bekanntes Mitglied
ich gehe mal davon aus das auf Dozent[] als Object gesehen wird. eine andere Teilfrage war wie viele Objecte erzeugt werden. Da war die richtige Antwort 5. Dies kann aber nur hinhauen wenn Dozent[] auch als Object gesehen wird.

Klar main ist in gewisser weiße auch ein Objekt aber dies ist in den Fragen egal.
 

Marco13

Top Contributor
Wenn an anderer Stelle die Antwort war, dass dort 5 Objekte erstellt werden (d.h. der Dozens-Array, und zwei Dozens-Objekte mit jeweils einen int-Array drin) dann würde ich auch sagen, dass das im Widerspruch zu der Antwort steht, dass hier nur noch 2 Objekte übrig sein sollen: Wenn der int-Array im Dozens-Objekt mitgezählt wird, sind es 3.
 

tagedieb

Top Contributor
Ich denke der Teufel liegt hier im Detail, bzw im Aufgabentext. Wie üblich bei solchen Test muss man jedes Wort auf die Waagschale legen. ???:L
 

bobbsen

Mitglied
Aus dem Buch:

Java:
public class Dozens {
    int[] dz = {1,2,3,4,5,6,7,8,9,10,11,12};
}
 
public class Eggs { 
    public static void main(String[] args){
        Dozens [] da = new Dozens[3];  // Objekt 1 erstellt (Array)
        da[0] = new Dozens();          // Objekt 2+3 erstellt (Dozens und Dozenz.dz)
        Dozens d = new Dozens();       // Objekt 4+5 erstellt (Dozens und Dozenz.dz)
        da[1] = d;                     // Referenz auf 4+5 'gesichert'
        d = null;                      // Original Referenz auf 4+5 gelöscht
        da[1] = null;                  // 'Sicherung' der Referenz auf 4+5 gelöscht
        // do stuff
    }
}
Which two are true about the objects created within main(), and eligible for garbage collection when line 14 is reached?

A Three objects were created
B Four objects were created
C Five objects were created
D Zero objects are eligible for GC
E One object is eligible for GC
F Two objects are eligible for GC
G Three objects are eligible for GC

Wenn ich mich recht entsinne, meinen die mit Objekt ein Element auf dem Heap, somit Objekte und auch Arrays.

Bei erreichen der 14. Zeile ("// do stuff") wurden 5 Objekte erstellt, Objekt 1 (Array) und die Objekte 2+3 (da[0]) sind auch noch referenziert. Objekte 4+5 sind allerdings verloren gegangen, da beide existierenden Referenzen gelöscht wurden :)

Also C und F

Zum Vergleich die Antwort aus dem Buch:

C and F are correct. da refers to an Object of type "Dozenz array", and each Dozenz object that is created comes with its own "int array" object. When line 14 is reached, only the second Dozenns object (and its "int array" object) are not reachable.
 

irgendjemand

Top Contributor
@TO
ich glaube du hast die frage falsch verstanden ...

es wird danach gefragt wie viele objekte nun durch fehlende referenzen überhaupt für den GC freigegeben sind ... und das sind nun mal 2 ... ein mal das Dozen objekt ... und dann das darin liegende array ...

das was du hier falsch übersetzt hast und desshalb deine annahme von "3" falsch ist war das du dachtest die frage würde meinen wie viele objekte noch da sind ... dann hättest du mit deinen "3" ja recht ... aber das wurde eben nicht gefragt .. sondern nach der anzahl die in zeile 14 vom GC weggeräumt werden KÖNNEN ...
 

tagedieb

Top Contributor
Hmm, hab ich mir auch ueberlegt, aber dann muessten es ja 5 Objekte sein da die Methode sowie das Program beendet wird und dann gar keine Referenzen auf irgendwelche Objekte existieren...

Na ja, solche Spitzfindigkeiten haben in Test/Pruefungen nun wirklich nichts zu suchen und gehoeren verboten!
 

bobbsen

Mitglied
das Programm bzw. die Methode ist aber zum Zeitpunkt der Frage noch nicht beendet, sondern steckt in Zeile 14 fest. An Stelle von "do stuff" können noch 20 andere Zeilen stehen, die aber in dieser Frage total egal sein würden. ;)

Edit: Der Test im Buch ist übrigens (mit Ankündigung!) ein wenig schwerer/komplizierter aufgestellt, da man sich bei diesen Fragen wirklich den Kopf zerbrechen soll.

Im Examen gibt es dann allerdings auch Fragen wie zB.

Code:
class Fizz {
    int x = 5;
    public static void main(String[] args) {
        final Fizz f1 = new Fizz();
        Fizz f2 = new Fizz();
        Fizz f3 = FizzSwitch(f1,f2);
        if (f1==f3) f1 = f2;
        System.out.println(f2==f3 + " " + (f2.x == f3.x));
    }
    static Fizz FizzSwitch(Fizz x, Fizz y){
        final Fizz z = x;
        z.x = 6;
        return z;
    }
}

What is the result?
A true true
B false true
C true false
D false false
E Compilation fails
F An exception is thrown at runtime

Da muss man dann immer genau hinschauen ;)

PS: code- statt Java-Tag, sonst wäre das ja langweilig, im Test hat man auch Plain Text :p
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Die Frage ist nun wie viele Objekte am ende für den garbage collector noch da sind.

Which two are true about the objects created within main(), and eligible for garbage collection when line 14 is reached?

Vermutlich war der Unterschied zwischen "noch da" (d.h. noch nicht für den Garbage Collector einsammelbar) und "eligible" (d.h. DOCH einsammelbar) der Grund für die Verwirrung: Das bedeutet genau das Gegenteil, von daher ist das doch kein Fehler im Buch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zertifizierung von Oracle, ehemals SCJP Allgemeine Java-Themen 4
H2SO3- SCJP garbage collector frage Allgemeine Java-Themen 13
G Wie auf SCJP vorbereiten? Allgemeine Java-Themen 20
nrg SCJP Übungsaufgaben/Schwerpunkte Allgemeine Java-Themen 10
J SCJP - Ereichte Prozentpunkte Allgemeine Java-Themen 2
S SCJP Zertifizierung Allgemeine Java-Themen 2
M Sun Zertifikate (SCJP, SCWCD) Allgemeine Java-Themen 4
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
H Frage regex greater than less than Allgemeine Java-Themen 7
berserkerdq2 Frage zu IntelliJ und JavaFX Allgemeine Java-Themen 1
W Timer Konzept-Frage Allgemeine Java-Themen 16
T Eine Frage des Designs Allgemeine Java-Themen 2
C Frage zu eigenem TableCellRenderer Allgemeine Java-Themen 11
C Programmvorstellung & Frage zum Thema Geschäftsform Allgemeine Java-Themen 51
J Frage zu System.getproperties. Allgemeine Java-Themen 60
molat100 wie kann man die Frage beantworten Allgemeine Java-Themen 1
pkm Frage zur Präzision von Calendar.WEEK_OF_YEAR Allgemeine Java-Themen 12
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
pkm Frage nach eventuellem syntaktischen Zucker bei der Konkatenation von ArrayLists Allgemeine Java-Themen 4
M Frage-Antwortspiel wie Wer wird Millionär Allgemeine Java-Themen 1
F Frage zu System.in Allgemeine Java-Themen 3
marcooooo Frage zum Beispiel im Anhang Allgemeine Java-Themen 16
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
B For-Loop Frage Allgemeine Java-Themen 21
L Java frage Allgemeine Java-Themen 3
bueseb84 Frage zu Mock und UpperBound Allgemeine Java-Themen 2
M Frage zum Konstruktor Allgemeine Java-Themen 2
W Best Practice Frage zur Umsetzung MVC Allgemeine Java-Themen 9
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
B Frage zu Unit-Tests Allgemeine Java-Themen 6
T Allgemeine Frage: GUI für 3D-Visualisierung Allgemeine Java-Themen 5
R Allgemeine Frage zu RMI bei MVC Allgemeine Java-Themen 2
O Frage zum Runtimeverhalten von Java ... Allgemeine Java-Themen 2
H Rundreise frage (Algorithmus) Allgemeine Java-Themen 18
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
D Frage zu Vererbung Allgemeine Java-Themen 5
J Frage zu regulärem Ausdruck Allgemeine Java-Themen 2
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
S Frage zur JLS Allgemeine Java-Themen 0
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
A Methoden Allgemeine Java Frage Allgemeine Java-Themen 3
E String Frage Allgemeine Java-Themen 9
I bin neu bei GitHub, Frage zur Sicherheit Allgemeine Java-Themen 14
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
C KeyListener Frage Allgemeine Java-Themen 3
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
R Konstanten initialisieren - FRAGE Allgemeine Java-Themen 3
MTJ004 FTP Frage zu FTP Speicherung Java-Android-FTP Allgemeine Java-Themen 5
J Frage zum Entwurf / json-Datenmodell Allgemeine Java-Themen 8
A Frage zu meinem Code Allgemeine Java-Themen 2
RalleYTN Classpath Nur ne kleine Frage zur MANIFEST.MF Allgemeine Java-Themen 4
T Frage zu Access Modifiers Allgemeine Java-Themen 6
W Input/Output Frage zu pdfbox und FileUtils Allgemeine Java-Themen 2
O Frage zur Implementierungsweise Allgemeine Java-Themen 4
B Frage zu Bitshift Allgemeine Java-Themen 3
J Java Zufallsgenerator (6 aus 49) Frage Allgemeine Java-Themen 7
L Frage zu RIA und GWT Allgemeine Java-Themen 0
P Concurrency Frage Allgemeine Java-Themen 8
M Frage zu Enumerations Allgemeine Java-Themen 2
F Unlimited Strength Policy. Frage Verbreitung der Anwendung Allgemeine Java-Themen 1
F Frage zur Library JTS Allgemeine Java-Themen 5
S Java Design Frage Allgemeine Java-Themen 10
E Reflection? Frage Allgemeine Java-Themen 4
C FileInputStream frage Allgemeine Java-Themen 6
G Polymorphie Programmdesign Frage Allgemeine Java-Themen 20
Uzi21 Frage zu NetBeans ( Console) Allgemeine Java-Themen 11
D Classpath Frage zum Java Resource Loading Allgemeine Java-Themen 2
G Frage zu JPA Allgemeine Java-Themen 1
S Methoden Frage Allgemeine Java-Themen 2
P MVC - Frage zu Model Allgemeine Java-Themen 4
K Frage zu Locks Allgemeine Java-Themen 1
S Frage zu abstract Allgemeine Java-Themen 5
M ArrayList<String> Frage Allgemeine Java-Themen 7
M OOP Design Frage Allgemeine Java-Themen 2
N Frage zur while-Schleife Allgemeine Java-Themen 18
T Best Practice Auslesen von Zeichenketten (Frage, Antworten, usw) Allgemeine Java-Themen 4
C Eine Frage zur Bearbeitungszeit Allgemeine Java-Themen 8
H Frage wegen Heap-Speicher Allgemeine Java-Themen 2
T Garbage Collection Frage Allgemeine Java-Themen 15
P Kurze Frage: aus einer File die Zeilenanzahl auslesen Allgemeine Java-Themen 9
D Frage zu Java und Umlauten / charsets Allgemeine Java-Themen 2
B Frage zu Java und OpenGL? Allgemeine Java-Themen 3
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
A eine test thread.join() frage Allgemeine Java-Themen 2
DStrohma LayoutManager Frage zum GridBagLayout Allgemeine Java-Themen 4
F Frage zu Regex möglich Allgemeine Java-Themen 4
H XML-File mit Java erzeugt Frage Allgemeine Java-Themen 10
D Frage und Antwort Programm, Problem bei Methodenaufruf Allgemeine Java-Themen 3
J NetBeans Frage bezüglich der Scanner-Klasse Allgemeine Java-Themen 6
H Java Vector Frage Allgemeine Java-Themen 9
W Frage... Allgemeine Java-Themen 29
R Frage zur topologischen Sortierung Allgemeine Java-Themen 2
H Frage zu weka.core.Instance Allgemeine Java-Themen 3
Y Kleine Frage zu String.split Allgemeine Java-Themen 3
T Frage zu Klassendesing Allgemeine Java-Themen 3
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben