public class TestStatic{
 
 static{
    System.out.println(1);
 }
 
 
 static{
    System.out.println(2);
 }
 
 public static void main(String[] args){
    System.out.println(5);
 }
 
 static{
    System.out.println(3);
 }
 
 
 static{
    System.out.println(4);
 }
}
 
执行的结果是
1
2
3
4
5
 
一目了然,首先调用的是static静态快的代码,然后调用启动方法.而static块的执行顺序是由代码的编写顺序执行的过程.