Java开发工程师2020笔试回顾:关键知识点与解答

需积分: 5 4 下载量 190 浏览量 更新于2024-09-04 收藏 46KB DOCX 举报
在2020年的Java开发工程师笔试中,题目涵盖了Java基础知识、数据结构以及数据库查询等多个方面,旨在测试应聘者的理论知识和编程能力。以下是一些关键知识点的详细解析: 1. **Java类与对象**: 题目涉及了Java类的继承关系。选项A和B展示了两个`class java.lang.Object`的实例,这表明候选者需要理解`Object`是所有类的基类。根据题目,程序输出应该是两个相同的`class java.lang.Object`,并且由于它们都是同一个类,因此输出`true`,对应于选项A。 2. **异常处理和程序执行**: 主题涉及到`main`方法的异常处理和`finally`块的执行。选项B提到了`Zeroexception`,可能暗示着程序中有可能出现`ArithmeticException`或`NullPointerException`等。`finally`块在任何情况下都会执行,所以最后两行是`Noexception`。因此,正确的答案是`B`,表示程序在遇到错误后仍然执行了`finally`代码。 3. **数据结构-树的遍历**: 考察的是二叉树的节点编号规则。题目要求采用的遍历方式能满足“从根开始按层次遍历”的特点,即先访问根节点,然后按照层次顺序访问左子树再访问右子树。这种遍历方式会确保节点编号遵循题目描述的规则,因此选择D,从根开始按层次遍历。 4. **链表顺序查找的平均时间复杂度**: 顺序查找的时间复杂度是线性的,对于N个元素,最坏情况下需要检查每个元素才能找到目标。平均情况下,查找次数与元素位置有关,所以平均查找长度为(N+1)/2,对应选项A。 5. **完全二叉树的性质**: 完全二叉树的节点编号规律是递增的,对于一个深度为K的完全二叉树,编号为25的节点位于第K层。由于根节点编号为1,且从1到n的节点一一对应,25在第K层且在中间位置,因此它要么有左孩子无右孩子,要么有右孩子无左孩子,但不可能同时存在两者。由于题目没有明确说明是满二叉树还是非满,只能判断为B或C,具体取决于50是否能被2^(K-1)整除。 6. **SQL查询**: 小易需要获取每个学生所选课程的数量,这意味着需要对`course_relation`表进行分组统计。选项A中的SQL查询正是通过`sum(course_id)`计算每个`student_id`对应的课程数量,因此是正确的。 以上知识点展示了2020年Java开发工程师笔试部分题目的解答和考察重点,包括面向对象、异常处理、数据结构、算法和基本SQL查询等。对于求职者来说,理解和掌握这些内容对于通过笔试至关重要。