Here is the following code where I have two classes practically doing nothing. When the decompiled code of the "class TestBed" is checked "int val = tb.display()" gets placed in constructor automatically. How is this happening ?
class TestBed
{
    int display()
    {
        return 100;
    }
    TestBed tb;
    int val = tb.display(); /* will get placed in constructor 
                               automatically. But how? */
}
public class DeleteThis {
    public static void main(String[] args) {
        System.out.println("printing");
    }
}
After decompiling "TestBed.class" using decompiler following code appears
/* Following is decompiled code */
class TestBed
{
    TestBed tb;
    int val;
    TestBed()
    {
        val = tb.display(); /* How int val = tb.display() gets placed 
                               in constructor automatically */
    }
    int display()
    {
        return 100;
    }
}