hi..
look at following one , it might clear your doubt
class C {
static int j = 12;
static { System.out.println(j);}
C() { System.out.println("in C");
}}
class B {
static int i = 10;
static {i++; System.out.println(i);}
// STATIC VARIABLES / STATIC initializer executes first
C c = new C();
}
class SUPRE extends B{
public static void main(
String []args){
new SUPRE();
}}
so -- 1st static var, 2 static init-block 3 rest body of the class