面经读后感-类加载顺序

讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字

段,当new的时候,他们的执行顺序。

死板答案:父类静态字段/静态块 子类静态字段/静态块 父类字段/代码块 父类构造器 子类字段/代码块 子类构造器

解释:
编译器会收集所有字段赋值和静态块 搞成一个方法,顺序由源码顺序决定,并且保证父类的比子类的先执行。
但是常量赋值会在之前执行。
所以必然是父类的静态字段/块,子类静态字段/块。
然后是方法,初始化所有字段,并且调用其他方法。
分几种情况:
如果对应的源码构造器内明确从调用另一个构造器开始,则该方法会先调用对应的方法。
否则该方法会调用父类的方法,初始化字段,然后是该方法本体的字节码)

面经读后感-类加载顺序

http://blog.mothership.top/posts/8c73a019.html

作者

Mother Ship

发布于

2018-12-11

更新于

2023-02-13

许可协议

评论