调试,是开发流程中相当重要的一环,有了调试,我们可以解决 Fail,甚至在 Fail 之前找到 Error,分析 Error 并成功遏制它转化为我们不想看见的 Fail。这两项实验旨在教会我们如何使用 IntelliJ 进行各种必要的调试。
考虑到实际上调试的内容很简单,记录操作其实就是相当于提供答案,此处只考虑简要记录各阶段个人感觉可能有价值的点。
Bomb
这部分注意一下链表类 Intlist 的实现,就实而言他的构造方法挺有意思的,我们常规是指针维护 loc,但此处的整体构造是由递归实现的。不过也有弊端,比如安全性巨差…
- Bomb0 直接调试就行
- Bomb1 注意 equals 需要的类型,考虑当前类有没有什么方法能够对齐类型
- Bomb2 是一个指定循环轮数的断点,也就是条件断点
BeeCountingStage
- 注意一下野指针的产生原因,当前类的所有成员是否全部实例化了?
- 我拉取的项目似乎最后的数组边界存在问题
SpeciesListStage
- 边界处理
- 另外似乎程序对你猜的数量计算的不对,不转类型进行整数除法导致你猜了也约等于没猜(
PalindromeStage
- 我们真的反转完全部内容了么?
MachineStage
- 一个神秘方法内的问题,一个方法调用上的问题
- 两个无符号位运算写的挺有技巧,涉及到加法器的底层实现了
Puzzle
- Runtime Exception 是合理的,一个避免空指针的 trick
- 根据 ArrayindexOutOfBound Expection 就能很容易发的发现这是一个条件断点
以上
发表回复