-----------------第二天------------------------
本文先论述父子类变量、代码块、构造函数执行顺序的结论, 然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。温故而知新,建议点赞收藏~
1先说结论
面试官:好的,你说一下java中父类子类的变量、代码块、构造函数执行顺序是怎样的?
3妹:好的,
Java程序中类中个元素的初始化顺序 初始化的原则是:
- 先初始化静态部分,再初始化动态部分,
- 先初始化父类部分,后初始化子类部分,
- 先初始化变量,再初始化代码块和构造器。
具体的,由于类中初始化的部分有静态成员变量、静态代码块、普通成员变量、动态代码块、构造函数。所以跟父类子类组合起来有10种情况,总体顺序是:
- 1.父类的静态成员变量(如果是第一次加载类)
- 2.父类的静态代码块(如果是第一次加载类)
- 3.子类的静态成员变量(如果是第一次加载类)
- 4.子类的静态代码块(如果是第一次加载类)
- 5.父类的普通成员变量
- 6.父类的动态代码块
- 7.父类的构造器方法
- 8.子类的普通成员变量
- 9.子类的动态代码块
- 10.子类的构造器方法
2举例
面试官:能写个栗子
标签:初始化,java,静态,子类,代码,加载,妹学,父类,构造函数 From: https://blog.51cto.com/u_6813689/8469586