静态代码块: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