初始化父类static代码(多个static时顺序进行)初始化子类static代码(多个static时顺序进行)初始化父类构造代码块,然后执行构造函数初始化子类构造代码块,然后执行构造函数 
/** 
* @Description:
* @author mymilkbottles xz_mymilkbottles@163.com
* @date 2017年5月4日 上午10:47:05
* @version V1.0
*/ 
package Java20170504;
/**
* @Description:
* @author mymilkbottles xz_mymilkbottles@163.com
* @date 2017年5月4日 上午10:47:05
*
*/
public class Son extends parent{
    static{
        System.out.println(
"son static 1");
    }
    
public static String str=
"son";
    {
        System.out.println(
"son constructor block1");
    }
    
public Son() {
        System.out.println(
"son constructor");
    }
    {
        System.out.println(
"son constructor block2");
    }
    
public static void main(String[] args) {
        
new Son();
        System.out.println(
"finish");
    }
    
static{
        System.out.println(
"son static 2");
    }
}
class parent{
    
static{
        System.out.println(
"parent static 1");
    }
    
public static String str=
"2";
    {
        System.out.println(
"parent constructor block1");
    }
    
public parent() {
        System.out.println(
"parent constructor");
    }
    
static{
        System.out.println(
"parent static 2");
    }
    {                              
        System.out.println(
"parent constructor block2");
    }
}
 
执行结果:
 
parent 
static 1
parent 
static 2
son 
static 1
son 
static 2
parent 
constructor block1
parent constructor block2
parent constructor
son constructor block1
son constructor block2
son constructor
finish