Determine output:<br><pre><code class="java">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;}}</code></pre>

Correct Answer: InsideDemo 10 Hello2

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.