大致过程如下:
(1)解释器查找类路径,定位class文件,这是一个对文件系统的操作;
(2)在加载该类时,发现该类继承了一个基类,于是加载这个基类,若这个基类又继承了基类,则第二个基类被加载,依次回朔加载到根基类;
(3)若是首次加载,则首先执行根基类的静态初始化static,然后依次是它的子孙的静态初始化,直到所有的类加载完毕;
(4)在堆上分配存储空间;————如果是抽象基类怎么办?会分配空间吗?
(5)从根基类开始,先执行字段的初始化;然后执行根基类的构造函数;按照这个顺序,依次向下,执行子类的。