方法块:
修饰符只能用static修饰:

静态代码块: static{}

  1. 加载一次,
  2. 加载早于非静态,早于对象的创建,随着类的加载而加载
  3. 多个静态代码块按顺序执行
  4. 只能对于静态的属性进行赋值

非静态代码块:{}

  1. 可以对属性(静态|非静态)或者方法(静态|非静态)进行初始化操作
  2. 里面可以有输出语句
  3. 一个类可以有多个非静态代码块,多个代码块之间顺序执行
  4. 每创建一个类的对象,非静态代码块执行一次
  5. 非静态代码块早于构造器

执行顺序:默认初始化 ->显示初始化|代码块初始化(按照先后顺序)->构造器