Determine output:
public class InitDemo{
static int i = demo();
static{
System.out.print(i);
}
InitDemo(){
System.out.print("hello1");
}
public static void main(String... args){
System.out.print("Hello2");
}
static int demo(){
System.out.print("InsideDemo");
return 10;
}
}
public class InitDemo{
static int i = demo();
static{
System.out.print(i);
}
InitDemo(){
System.out.print("hello1");
}
public static void main(String... args){
System.out.print("Hello2");
}
static int demo(){
System.out.print("InsideDemo");
return 10;
}
}
A. Compilation error.
B. IllegalArgumentException is thrown at runtime.
C. InsideDemo 10 Hello2
D. Hello2 InsideDemo 10
E. InsideDemo 10 Hello2 hello1
Answer: Option C
Solution (By Examveda Team)
As soon as the class are loaded static variables are initialized first. To initialize it demo must be called first then then static block executes and then main method is called.
Before the loading of main , static block is called.but here static block is not executed at first.so I think it's the wrong answer