静态代码块:static修饰的代码块。
在类加载-初始化的时候进行,主要目的是给变量赋予初始值
构造代码块:直接在类中定义且没有加static关键字的代码块称为构造代码块。
java会把构造代码块放到构造方法前面,用于实例化一些共有的实例变量,减少代码量
构造方法:与类同名,没有返回值类型的方法
用于实例化变量
父类和子类:对子类的调用会导致其对父类的主动调用,所以尽管实例化的是子类,但也会导致父类的初始化和实例化,且父类先于子类执行。
参考实例:
public class HelloB extends HelloA { public HelloB() { } {
System.out.println("I’m B class");
}
static {
System.out.println("static B");
} public static void main(String[] args) {
new HelloB();
}
} class HelloA {
public HelloA() {
} {
System.out.println("I’m A class");
}
static {
System.out.println("static A");
}
}
输出结果:
static A
static B
I’m A class
I’m B class