2020哈工大威海计算机保研面试解析:数据库与软件工程焦点

需积分: 20 44 下载量 76 浏览量 更新于2024-09-01 5 收藏 2KB TXT 举报
"这篇文档是关于2020年哈尔滨工业大学威海校区计算机学院保研预推免面试的经验分享,主要涉及数据库和软件工程领域的专业知识。面试流程包括20分钟的英文自我介绍,7个专业问题,以及对参赛项目和论文奖项的简单询问。" 在此次保研面试中,面试官提出的专业问题涵盖了一些计算机科学的基础概念,特别是与数据库和软件工程相关的知识。以下是这些知识点的详细说明: 1. **TCP三次握手**:TCP(传输控制协议)的三次握手是一个建立可靠连接的过程,确保双方都能正确接收和发送数据。面试中提到的问题是,如果只有两次握手是否可行。实际上,两次握手无法保证数据的可靠性,因为服务器可能误认为客户端已经发送了数据,而客户端可能并未真正发送。 2. **进程状态**:在多进程环境中,一个CPU可以处理多个进程。面试中提及的进程状态包括就绪、阻塞和运行。一个CPU同一时刻只能运行一个进程,但可以有多个就绪(等待CPU分配时间片)和阻塞(等待资源释放)的进程。 3. **第三范式**:在数据库设计中,第三范式(3NF)是关系数据库规范化的一个阶段,要求消除非主属性对候选键的传递依赖,以减少数据冗余和更新异常。 4. **数据库约束条件**:数据库约束是用来确保数据完整性的规则,如主键约束、唯一约束、非空约束和外键约束等。它们防止了不合法数据的插入或修改。 5. **数据库约束条件的重要性**:没有约束条件的数据库可能导致数据不一致和冗余,影响数据的准确性和系统的稳定性。约束条件是维护数据库完整性的关键。 6. **哈希表的冲突解决**:哈希表在存储元素时可能会出现键值映射到同一位置的情况,即冲突。常见的冲突解决方法有开放寻址法、链地址法和再哈希法等。 7. **链表与数组的区别**:链表是动态存储结构,每个节点包含数据和指向下一个节点的指针,插入和删除操作高效,但访问速度慢。数组则是静态存储,通过索引直接访问,访问速度快但插入和删除效率低。 8. **二叉排序树**:二叉排序树是一种特殊的二叉树,每个节点的左子树只包含小于当前节点的元素,右子树包含大于当前节点的元素。平衡的二叉排序树高度最小,查找效率高;完全不平衡时,查找效率降低。 面试还涉及到个人发展规划,例如学习上的研究方向选择和生活中的健康锻炼计划。此外,面试者需要用英语介绍自己的家乡,表达最喜欢的学科和研究方向,并解决判断链表是否为循环链表的问题,这通常通过快慢指针法实现。 最后,面试提到了结构化分析的三个模型:数据模型描述数据结构,功能模型表示系统功能,行为模型展现系统动态行为。对于关系型数据库,优化查询速度的方法通常包括创建索引、合理设计数据库结构、避免全表扫描和利用SQL的查询优化器等策略。