Why below code compiles fine and prints "init"?

42 views Asked by At

System.out.println("init"); this statement is not within static block and not in any function or constructor, but still java doesn't give any error or warning and prints it before constructor sysout. why ?

public class A {

    public A()
    {
        System.out.println("A()");
    }
    public void print(int a) {

        System.out.println("integer");
    }
    {
        System.out.println("init");
    }
}

public class TestA {

    public static void main(String args[]) {

        A a = new A();

        a.print(new Integer(1));
    }
}

Output :

init
A()
integer
0

There are 0 answers