代码块定义:使用 {} 定义的一段代码。
根据代码块定义的位置以及关键字,又可分为以下四种:
普通代码块 :定义在方法中的代码块
构造块:定义在类中的代码块(不加修饰符)
静态块 :使用static定义的代码块
同步代码块
class HelloA {
//构造方法
public HelloA(){
System.out.println("Hello A!父类构造方法");
}
//非静态代码块
{
System.out.println("i'm A class.父类非静态代码块");
}
//静态代码块
static{
System.out.println("static A 父类静态代码块");
}
}
public class Text extends HelloA {
//构造方法
public Text(){
System.out.println("Hello B! 构造方法");
}
//非静态代码块
{
System.out.println("i'm B class.非静态代码块");
}
//静态代码块
static{
System.out.println("static B 静态代码块");
}
public static void main(String[] args) {
System.out.println("---start---");
new Text();
new Text();
System.out.println("---end---");
}
}
由运行结果可以得出在主方法中的静态代码块优先于主方法执行,父类静态代码块优先于子类执行,构造块(非静态代码块)优先于构造方法执行,构造方法优先于普通代码块。