静态代码块
static{//静态代码块
}
在类首次加载时运行,且只会运行一次
当前类中入口哦方法触发类加载
创建对象触发类加载
静态内容的调用触发类加载
反射机制可以触发类加载(注:反射机制使用:Class.forName("类的全路径");)
有继承关系的类
在加载子类的时候会先加载父类
先执行父的静态代码块 然后执行子的静态代码块
非静态代码块
//非静态代码块
{
}
在调用方法时触发,次数结合调用构造方法的次数
先执行非静态代码块 在执行构造方法
当有静态代码块时
先执行静态代码块1次 然后(非静态代码块,构造方法)可能执行n次
有父子关系时 (静态代码块,非静态代码块,构造方法)
父静态代码块->子静态代码块->父(非静态代码块->构造方法)->子(非静态代码块->构造方法)