版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026计算机岗面试考点梳理预测试卷含答案考试时间:______分钟总分:______分姓名:______一、选择题1.在操作系统中,进程和线程的主要区别是()。A.进程拥有独立的内存空间,而线程共享内存空间B.线程拥有独立的内存空间,而进程共享内存空间C.进程的切换开销比线程大D.线程不能被操作系统调度2.HTTP/3协议是基于以下哪项协议实现的?()A.TCPB.UDPC.TLSD.HTTP/23.MySQL数据库中,InnoDB引擎默认使用的索引数据结构是()。A.Hash表B.B+树C.红黑树D.AVL树4.在TCP三次握手的过程中,服务器发送的确认报文中,其序列号是()。A.客户端发送的序列号+1B.服务器自己的初始序列号C.服务器自己的初始序列号+1D.随机数5.关于死锁产生的必要条件,下列说法正确的是()。A.互斥条件、请求与保持条件、不剥夺条件、循环等待条件B.互斥条件、请求与保持条件、剥夺条件、循环等待条件C.互斥条件、不剥夺条件、请求与保持条件、同步条件D.互斥条件、不剥夺条件、请求与保持条件、循环等待条件6.在Java语言中,垃圾回收机制主要针对的对象是()。A.静态变量B.局部变量C.堆内存中的对象D.栈内存中的变量7.在计算机网络中,DNS协议的主要作用是()。A.域名解析B.文件传输C.邮件发送D.网页浏览8.关于数据库事务的隔离级别,下列说法正确的是()。A.读未提交允许脏读B.读已提交允许不可重复读C.可重复读允许幻读D.串行化隔离级别并发性能最高9.题目:给定一个数组nums=[2,7,11,15],目标值target=9,因为nums[0]+nums[1]=2+7=9,所以返回[0,1]。这个问题的时间复杂度最好是()。A.O(n^2)B.O(nlogn)C.O(n)D.O(logn)10.HTTPS握手过程中,客户端发送ClientHello报文,其中包含的内容有()。A.加密套件列表、压缩方法、随机数B.数字证书、随机数C.加密套件列表、数字证书、随机数D.加密套件列表、随机数、会话ID二、简答题1.请详细描述TCP协议三次握手的过程,并解释为什么需要三次握手?如果客户端发送了两次SYN,服务器就回复了两次ACK和SYN,会出现什么问题?2.什么是死锁?请列举产生死锁的四个必要条件,并说明如何避免死锁?3.简述MySQL中B+树索引相比于B树索引的优点。在什么情况下索引会失效?4.什么是MVCC(多版本并发控制)?它主要解决了什么问题?5.什么是Redis的持久化?RDB和AOF两种持久化方式的优缺点分别是什么?三、编程题1.题目:反转链表给你单链表的头节点head,请你反转链表,并返回反转后的链表。2.题目:两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。并且,你不能重复利用同一个数组元素。四、系统设计题1.题目:设计一个短链接服务需求描述:设计一个系统,将长URL(例如/search?q=hello&sort=date)转换为短URL(例如/AbCd12)。要求:1.生成短链接的算法要保证唯一性和随机性。2.系统需要处理高并发访问。3.链接需要支持过期或删除功能。请画出系统架构图,并说明各个模块的功能及关键技术点。五、项目与软技能1.请描述一个你参与过的最复杂的项目,你在其中承担了什么角色?遇到了什么技术难点?你是如何解决的?如果现在让你重新做,你会做哪些优化?试卷答案一、选择题1.A解析:进程拥有独立的地址空间,资源隔离性好,切换开销大;线程共享进程的地址空间和资源,切换开销小。线程不能独立调度,必须依赖进程调度。2.B解析:HTTP/3协议是基于UDP协议实现的(通过QUIC协议),解决了TCP在网络拥塞时的队头阻塞问题。3.B解析:MySQLInnoDB存储引擎默认使用B+树作为索引的数据结构。B+树非叶子节点不存储数据,只存储键值,这使得树的高度更低,IO次数更少,查询效率更高。4.C解析:在三次握手过程中,客户端发送SYN包,序列号为x;服务器回复SYN+ACK包,此时服务器的序列号是它自己的初始序列号y,确认号是x+1。5.A解析:死锁产生的四个必要条件是:互斥条件(资源独占)、请求与保持条件(持有资源等待)、不剥夺条件(资源不能被强行抢占)、循环等待条件(资源形成循环链)。6.C解析:Java垃圾回收主要针对堆内存中的对象,栈内存中的变量由编译器和运行时系统自动管理,不属于GC范畴。7.A解析:DNS(DomainNameSystem)的作用是将人类可读的域名(如)转换为机器可读的IP地址。8.A解析:读未提交(ReadUncommitted)允许读取其他事务未提交的数据,因此会产生脏读;读已提交(ReadCommitted)解决脏读,但可能产生不可重复读;可重复读(RepeatableRead)解决不可重复读,但可能产生幻读(InnoDB默认隔离级别);串行化并发性能最低。9.C解析:使用哈希表(HashMap)存储数据,通过一次遍历即可找到目标值,时间复杂度为O(n),这是解决该问题的最优时间复杂度。10.A解析:HTTPS握手的第一步ClientHello报文包含的内容有:支持的加密套件列表、支持的压缩方法、客户端生成的随机数。二、简答题1.解析:三次握手过程:1.客户端发送SYN=1,seq=x,请求建立连接。2.服务器收到SYN包,发送SYN=1,ACK=1,seq=y,ack=x+1,确认收到。3.客户端收到SYN+ACK包,发送ACK=1,seq=x+1,ack=y+1,连接建立。为什么需要三次:主要是为了确认双方的接收和发送能力都是正常的,防止已失效的连接请求报文段突然又传送到了服务端,造成错误。两次SYN/ACK的问题:如果服务器发送两次SYN+ACK,客户端发送一次ACK,服务器会认为连接已建立。但实际上客户端可能并未准备好(例如客户端崩溃重连),这会导致服务器建立了一个无效连接,浪费服务器资源。2.解析:死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。四个必要条件:1.互斥条件2.请求与保持条件3.不剥夺条件4.循环等待条件避免方法:破坏上述任何一个条件即可避免死锁。最常用的是破坏“循环等待条件”,即规定资源申请的顺序(例如所有线程必须先申请A再申请B),避免形成资源请求的环路。3.解析:B+树优点:1.非叶子节点不存储数据,只存储索引,因此一个节点能容纳更多的索引,树更矮胖,IO次数更少。2.所有叶子节点通过指针连接,非常适合范围查询和全表扫描。索引失效情况:1.在索引列上使用函数或计算(如`WHEREYEAR(create_time)=2023`)。2.类型转换错误(如字符串存数字但没加引号)。3.联合索引不满足最左前缀原则。4.在索引列上进行`LIKE`查询,以`%`开头。5.`OR`连接两边的字段有一个没有索引。6.`!=`或`<>`操作。4.解析:MVCC(Multi-VersionConcurrencyControl)即多版本并发控制,是通过维护一个数据的多个版本,来实现读写操作并发执行的机制。解决的问题:它主要是为了实现InnoDB存储引擎的读写并发。在读取数据时,不需要加锁,直接读取当前版本的数据(或者历史版本);在修改数据时,通过生成新版本的数据快照来实现。这避免了读写操作互相阻塞,大大提高了数据库的并发性能。5.解析:Redis持久化是指将内存中的数据保存到磁盘,以防断电或重启导致数据丢失。RDB(快照):*优点:生成文件紧凑,适合备份;恢复速度快。*缺点:不能实时持久化;上次保存到下次保存之间数据丢失。AOF(追加日志):*优点:数据安全性高,每秒同步或每条命令同步不丢失;可读性好,方便重建。*缺点:文件体积大,恢复速度慢于RDB。三、编程题1.解析:思路:使用迭代法,定义三个指针:`prev`(前一个节点)、`curr`(当前节点)、`next`(下一个节点)。步骤:1.初始化`prev=null`,`curr=head`。2.循环遍历链表:先保存`curr.next`给`next`,将`curr.next`指向`prev`,然后`prev=curr`,`curr=next`。3.当`curr`为空时,循环结束,`prev`即为新的头节点。代码逻辑:```javaListNodeprev=null;ListNodecurr=head;while(curr!=null){ListNodenext=curr.next;curr.next=prev;prev=curr;curr=next;}returnprev;```2.解析:思路:使用哈希表(HashMap)存储已经遍历过的数字及其索引。步骤:1.创建一个HashMap,用于存储`数值->索引`的映射。2.遍历数组`nums`,对于每一个数字`num`:a.计算需要的补数`complement=target-num`。b.检查`complement`是否在HashMap中。i.如果在,返回`[map.get(complement),i]`。ii.如果不在,将`num`和它的索引`i`存入HashMap。复杂度:时间复杂度O(n),空间复杂度O(n)。四、系统设计题1.解析:架构设计:1.客户端/网关层:接收用户请求。2.负载均衡层:将流量分发到后端服务节点。3.短链接生成服务:核心业务逻辑,处理长转短请求。4.短链接跳转服务:处理短转长请求。5.存储层:*MySQL:持久化存储长URL、短URL、过期时间、创建时间等元数据。*Redis:缓存热点短链接数据,用于快速跳转;生成唯一ID(如雪花算法或自增ID)。关键技术点:1.唯一ID生成:为了避免数据库自增ID暴露数据量,推荐使用雪花算法或Redis的`INCR`命令生成全局唯一ID,然后进行Base62编码(0-9,a-z,A-Z)得到短码。2.跳转原理:当访问短链接时,服务解析短码,去数据库或Redis查找对应的长URL,返回一个HTTP302重定向响应,将用户重定向到长URL。3.高并发处理:*使用Redis作为缓存层,减少数据库压力。*数据库读写分离,主库负责写,从库负责读。*使用CDN加速短链接的访问。4.过期/删除:在数据库表中设置TTL(过期时间字段),或者利用Redis的TTL机制自动过期。删除时直接更新数据库状态或标记。五、项目与软技能1.解析:这是一个开放性问题,考察项目经验和解决问题的能力。建议使用STAR法则(Situation情境、Task任务、Action行动、Result结果)来回答。*Situation/Task:描述项目背景、业务场景以及你面临的核心挑战(例如:订单并发量高导致数据库锁死、接口响应超时等)。*Action(核心):1.定位问题:通过日志分析、监控报警(Prometheus/Grafana)或用户反馈,定位到瓶颈。2.解决方案:*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年机动车驾培行业监管考试试题(含答案)
- 2026年技能考试人工智能训练师三级题库附答案
- 2026年建设工程消防审验考试试题(含答案)
- 2026年节水知识竞赛通关试题库【基础题】附答案详解
- 2026年居民公约村规民约的制定与监督测评含答案
- 2026年美甲师(高级-美甲护理与修复)测试题及答案
- 2026年内河船舶船员安全业务考试试题(含答案)
- 2026年农村三资模拟试卷目及参考答案
- 2026年普法题库(得分题)必考附答案详解
- 2026年人工智能训练师(一级)技能实操考核题库及答案
- 07SD101-8电力电缆井图集
- 2026-2027学年人教版七年级上册数学第一次月考全真模拟卷(含答案)
- 2026 年教师师德师风建设专题学习课件
- 注册消防工程师继续教育2025年部分题目与答案(126题)
- 九年级语文早读材料 素材
- 文库发布:如皋介绍
- 曲臂登高车安全培训课件
- 地下检查井隐蔽工程验收标准
- 急性心肌梗死PCI术后早期运动康复方案
- GB/T 45898.1-2025医用气体管道系统终端第1部分:用于压缩医用气体和真空的终端
- 伤口造口专科发展
评论
0/150
提交评论