Debug中的一个问题
老师,在 继承的初始化顺序 这一节,
设好断点,开始debug后,先步入,到ClassLoader中,
再点Step Over后,并没有跳转到Aniaml类的
private static int st1 = 22;
public static int st2 = 23;
的位置,而是直接到了Cat类的
public static int st3=44;
的位置,同时控制台也输出"我是父类的静态代码块",
请问为什么会跳过中间父类静态属性和静态代码块啊?
导入了课程的源码也是同样问题,请老师指导一下这是什么问题。
17
收起
正在回答
1回答
同学你好,老师这里没有复现同学的情况。请同学确认是否通过正确的步骤进行的测试,建议同学除了打印语句之外,都使用Step Into进行向下执行,使用Step Over可能会跳过某些步骤。
1.在new Cat()语句位置设置debug断点;
2.运行时,在断点处使用Step Into进入对象创建;
3.此时会进入Animal类的静态代码块,输出“我是父类的静态代码块”;
4.接下来初始化Animal类的两个静态变量;
5.此时会进入Cat类,自上而下初始化静态成员,即先初始化静态变量;
6.接下里初始化Cat类的静态代码块,输出“我是子类的静态代码块”;
当完成这些之后,对象创建完成。
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星