/*
* 代码执行顺序:静态代码块--构造代码块--无参空构造执行
* 思路:静态随着类加载而加载,优先于对象。---创建对象---(代码块,提取构造方法中的公共部分,优先构造方法执行。---构造方法)
* */
public class BlockTest {
public static void main(String[] args) {
Coder c = new Coder();
}
}
class Coder{
static {
System.out.println("Coder 静态代码块");
}
{
System.out.println("coder 构造代码块");
}
public Coder() {
System.out.println("Coder 无参空构造执行");
}
}
执行结果
package day21_static.代码块;
/*
* 执行顺序:bl_test,静态代码块---main,BlockTest2的主函数执行了---hello,teacher
* 分析:加载BlockTest2类(加载它的静态代码块:bl_test,静态代码块)---加载main函数(执行main函数---创建对象---执行对象方法)
* 注意:12-18行没执行,因为没有创建对象。构造方法和构造代码块只有在创建对象时会用。
* */
public class BlockTest2 { static { System.out.println("bl_test,静态代码块"); } { System.out.println("bl_test,构造代码块"); } public BlockTest2() { System.out.println("bl_test,无参构造执行"); } public static void main(String[] args) { System.out.println("main,BlockTest2的主函数执行了"); Teachers t = new Teachers(); } } class Teachers { public Teachers() { System.out.println("hello,teacher"); } }
执行结果