Because
System.out.print("House ");
is evaluated before
System.out.println(b.i + " " + b.getI());
b.getI() makes a call and prints the statement "House..", at this point of time, this line
System.out.println(b.i + " " + b.getI());
is still waiting a return from getI() method.
Once it gets return it will print out the whole line as "1 2".
Now the doubt that I have is why is output not
House
1 2
since there is a println and not print in
System.out.println(b.i + " " + b.getI());
Thanks
Chintan