-
普通代码块:
类中方法的方法体 -
构造代码块:
构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。 -
静态代码块:
用static{}包裹起来的代码片段,只会执行一次。静态代码块优先于构造块执行。 -
同步代码块(同步代码块在这里不做讲解,详见点击这里):
使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
普通代码块、构造代码块、静态代码块示例及执行顺序
public class Test {
{
System.out.println("构造代码块");
}
static{
System.out.println("静态代码块");
}
public Test() {
System.out.println("构造方法");
}
public void function1(){
{
System.out.println("普通代码块");
}
}
public static void main(String[] args) {
new Test().function1();
System.out.println("---------------");
new Test().function1();
}
}
// 执行结果
静态代码块
构造代码块
构造方法
普通代码块
---------------
构造代码块
构造方法
普通代码块
同类下执行顺序:静态代码块 > 构造代码块 > 构造方法 > 普通代码块
当创建多个对象时,静态代码块只执行一次