Hallo,
möchte nicht einen fremden Thread kapern, daher stelle ich meine Fragen hier rein.
What is the output of the following code?
public class InitializerBlocksExample {
static int x;
static {
x = 5;
System.out.println("Static Initializer Block: x = " + x);
}
{
x = 10;
System.out.println("Initializer Block: x = " + x);
}
public static void main(String[] args) {
System.out.println("Main Method: x = " + x);
}
}
(a) Static Initializer Block: x = 5
Initializer Block: x = 10
Main Method: x = 10
(b) Static Initializer Block: x = 5
Initializer Block: x = 10
Main Method: x = 5
(c) Static Initializer Block: x = 10
Initializer Block: x = 10
Main Method: x = 10
(d) Static Initializer Block: x = 10
Initializer Block: x = 10
Main Method: x = 5
Answer: (a) Static Initializer Block: x = 5, Initializer Block: x = 10, Main Method: x = 10
So laut KI!
Da allerdings kein Obj. der Klasse instanziert wird, greift der Instanz Initializer nicht. Daher müsste doch die Ausgabe folgend lauten, oder?:
Static Initializer Block: x = 5
Main Method: x = 5
also keine der oben angegebenen Antworten ist richtig!
möchte nicht einen fremden Thread kapern, daher stelle ich meine Fragen hier rein.
What is the output of the following code?
public class InitializerBlocksExample {
static int x;
static {
x = 5;
System.out.println("Static Initializer Block: x = " + x);
}
{
x = 10;
System.out.println("Initializer Block: x = " + x);
}
public static void main(String[] args) {
System.out.println("Main Method: x = " + x);
}
}
(a) Static Initializer Block: x = 5
Initializer Block: x = 10
Main Method: x = 10
(b) Static Initializer Block: x = 5
Initializer Block: x = 10
Main Method: x = 5
(c) Static Initializer Block: x = 10
Initializer Block: x = 10
Main Method: x = 10
(d) Static Initializer Block: x = 10
Initializer Block: x = 10
Main Method: x = 5
Answer: (a) Static Initializer Block: x = 5, Initializer Block: x = 10, Main Method: x = 10
So laut KI!
Da allerdings kein Obj. der Klasse instanziert wird, greift der Instanz Initializer nicht. Daher müsste doch die Ausgabe folgend lauten, oder?:
Static Initializer Block: x = 5
Main Method: x = 5
also keine der oben angegebenen Antworten ist richtig!