声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看) 1、代码块(或初始化块)的作用:对Java类或对象进行初始化 2、代码块(或初始化块)的分类:一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块(static block),没有使用static修饰的,为非静态代码块。 3、static代码块通常用于初始化static的属性 4、静态代码块:用static修饰的代码块  可以有输出语句  可以对类的属性、类的声明进行初始化操作  不可以对非静态的属性初始化,即:不可以调用非静态的属性和方法  若有多个静态的代码块,那么按照从上到下的顺序一次执行  静态代码块的执行要先于非静态代码块  静态代码块随着类的加载而加载,且只执行一次 5、非静态代码块:没有static修饰的代码块  可以有输出语句  可以对类的属性、类的声明进行初始化操作  除了调用非静态的结构外,还可以调用静态的变量或方法  若有多个非静态的代码块,那么按照从上到下的顺序依次执行  每次创建对象的时候,都会执行一次,且先于构造器执行 6、示例 7、总结:程序中成员变量赋值的执行顺序