static代码块是在类初始化时就被虚拟机执行的,所以最先输出的是d。
main方法是静态方法,是在类加载完之后由虚拟机调用的,调用之后才会输出c1。
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;
static{},这段代码名为静态代码块, {}中的内容会在该类加载时执行,作用是给全局的静态变量,或者常量导入初始值.可以调用其他static方法,目的都是赋值.System.out.printlt(x=3);可以执行,是因为在括号中给x赋值了.
如果你想更加了解静态代码块的作用与含义,百度一下静态代码块就知道了.这里就不多做解释了.