1、类的初始化
就像我们在代码中构造对象一样,需要调用类的构造方法。类的初始化也要执行()方法。此方法中包括此类的静态语句块和类变量赋值语句,类变量要赋值才行。如果一个只有类变量但是没有赋值也没有静态语句块,就可能不会有()方法(理解:赋值都没有,语句都没有,还要初始化干嘛)
2、子类和父类的初始化
和对象一样,子类初始化之前子类的父类必须完成初始化,即执行方法。
接口初始化:理解:接口有方法有变量,所以也能初始化。子类接口初始化不需要父类先完成初始化。(不懂就这样记)
3、每个类只能被加载一次,所以jvm在执行方法前会加锁防止多线程类被加载多次。