2026计算机岗面试真题汇编习题汇编_第1页
2026计算机岗面试真题汇编习题汇编_第2页
2026计算机岗面试真题汇编习题汇编_第3页
2026计算机岗面试真题汇编习题汇编_第4页
2026计算机岗面试真题汇编习题汇编_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026计算机岗面试真题汇编习题汇编考试时间:______分钟总分:______分姓名:______选择题1.关于TCP三次握手,下列说法正确的是?A.第一次握手客户端发送SYN=1,ACK=0,seq=xB.第二次握手服务器发送SYN=1,ACK=1,seq=y,ack=x+1C.第三次握手客户端发送SYN=0,ACK=1,seq=x+1,ack=y+1D.三次握手完成后,客户端和服务器均进入ESTABLISHED状态2.进程与线程的主要区别在于?A.进程拥有独立的内存空间,线程共享进程内存空间B.进程切换开销比线程小C.线程可以独立存在,无需进程支持D.进程间通信比线程间通信更简单3.Redis为什么快?A.支持多线程并发处理B.基于内存存储,采用单线程I/O多路复用C.使用B+树作为数据结构D.支持SQL查询优化4.HTTP状态码401表示?A.请求成功B.未授权访问C.资源未找到D.服务器内部错误5.事务的ACID特性中,“一致性”是指?A.事务执行前后,数据库状态保持一致B.事务一旦提交不可撤销C.多个事务并发执行互不干扰D.事务在指定时间内完成6.下列哪种数据结构最适合实现LRU缓存?A.数组B.链表C.哈希表+双向链表D.栈7.JVM内存模型中,存储对象实例的区域是?A.方法区B.虚拟机栈C.堆D.程序计数器8.DNS的主要作用是?A.加密网络通信B.将域名解析为IP地址C.管理网络路由D.存储网页内容9.下列关于死锁的说法,正确的是?A.死锁可以通过增加资源数量避免B.死锁的四个必要条件包括互斥、占有并等待、非抢占、循环等待C.死锁只能在单进程系统中发生D.死锁可以通过破坏“非抢占”条件避免10.Python中GIL的作用是?A.提高多线程并行执行效率B.保证同一时间只有一个线程执行字节码C.自动管理内存回收D.实现进程间通信编程题1.给定一个整数数组nums和一个目标值target,请找出数组中两个整数,使它们的和等于target,返回这两个整数的下标。假设每种输入只有一个答案,且不能重复使用同一元素。2.实现一个函数,完成二叉树的层序遍历,返回每层节点组成的列表。3.给定一个整数数组nums,求最长递增子序列的长度。简答题1.简述Redis持久化RDB和AOF的区别。2.HTTP和HTTPS的主要区别是什么?3.数据库索引的作用是什么?为什么索引过多可能导致性能下降?4.简述CAP理论及其在分布式系统中的权衡。系统设计题设计一个高并发秒杀系统,功能包括:商品秒杀、库存扣减、用户下单。要求支持千万级QPS,保证数据一致性,并考虑限流、降级和消息队列的使用。项目/场景题描述一个你参与过的项目,重点说明项目中遇到的最大技术挑战,以及你如何通过技术方案解决的。试卷答案###选择题答案1.A解析:TCP三次握手流程:第一次握手客户端发送SYN=1,ACK=0,seq=x;第二次握手服务器回复SYN=1,ACK=1,seq=y,ack=x+1;第三次握手客户端发送ACK=1,seq=x+1,ack=y+1。选项B中服务器第二次握手的ack应为x+1而非x+1(正确),但选项D中“均进入ESTABLISHED状态”正确,但选项A更直接且无歧义。2.A解析:进程拥有独立内存空间,线程共享进程内存空间;进程切换开销大于线程;线程不能独立存在,需依附进程;进程间通信(如管道)比线程间通信(如共享内存)复杂。3.B解析:Redis基于内存存储,采用单线程I/O多路复用模型(epoll/kqueue)实现高并发;不支持多线程并发处理(避免上下文切换);数据结构为哈希表/跳表等,非B+树;不支持SQL。4.B解析:HTTP状态码401表示“未授权访问”(Unauthorized),需身份验证;200表示成功;404表示资源未找到;500表示服务器内部错误。5.A解析:一致性(Consistency)指事务执行前后,数据库状态必须从一个有效状态转变为另一个有效状态;原子性(Atomicity)指事务不可分割;隔离性(Isolation)指并发事务互不干扰;持久性(Durability)指事务提交后永久保存。6.C解析:LRU缓存需支持O(1)时间复杂度的查找、插入和删除;哈希表提供快速查找,双向链表维护访问顺序(最近访问的移至头部);数组查找O(n),链表查找O(n),栈仅支持后进先出。7.C解析:JVM堆(Heap)存储对象实例和方法区(MethodArea)存储类信息;虚拟机栈(JVMStack)存储局部变量和操作数;程序计数器(PCRegister)存储下一条指令地址。8.B解析:DNS(域名系统)将人类可读的域名(如)解析为机器可读的IP地址;HTTPS加密通信,HTTP协议传输数据,路由由网络设备管理,网页内容存储于Web服务器。9.B解析:死锁四必要条件:互斥、占有并等待、非抢占、循环等待;增加资源数量可能避免死锁,但不破坏条件;死锁可在多进程系统发生;破坏“非抢占”条件(如强制剥夺资源)可避免死锁。10.B解析:GIL(全局解释锁)保证Python同一时间只有一个线程执行字节码,限制多线程并行性能;多线程适用于I/O密集型任务,CPU密集型任务需多进程;内存回收由垃圾回收器管理,进程间通信需multiprocessing模块。###编程题答案####1.两数之和```pythondeftwoSum(nums,target):num_map={}fori,numinenumerate(nums):complement=target-numifcomplementinnum_map:return[num_map[complement],i]num_map[num]=ireturn[]```解析:遍历数组,用哈希表存储已遍历元素的值和索引。对每个元素`num`,计算`complement=target-num`,若`complement`在哈希表中,则返回其索引和当前索引。时间复杂度O(n),空间复杂度O(n)。####2.二叉树层序遍历```pythonfromcollectionsimportdequedeflevelOrder(root):ifnotroot:return[]result=[]queue=deque([root])whilequeue:level=[]for_inrange(len(queue)):node=queue.popleft()level.append(node.val)ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)result.append(level)returnresult```解析:使用队列实现广度优先搜索(BFS)。每次遍历当前队列长度(即当前层节点),逐个出队并加入结果列表,同时将左右子节点入队。时间复杂度O(n),空间复杂度O(n)。####3.最长递增子序列```pythondeflengthOfLIS(nums):ifnotnums:return0dp=[1]*len(nums)foriinrange(1,len(nums)):forjinrange(i):ifnums[i]>nums[j]:dp[i]=max(dp[i],dp[j]+1)returnmax(dp)```解析:动态规划定义`dp[i]`为以`nums[i]`结尾的最长递增子序列长度。遍历数组,对每个`nums[i]`,检查所有`j<i`,若`nums[i]>nums[j]`,则`dp[i]=max(dp[i],dp[j]+1)`。最终返回`dp`数组最大值。时间复杂度O(n²),空间复杂度O(n)。###简答题答案####1.Redis持久化RDB和AOF的区别答案:-RDB:通过快照记录某一时刻数据,文件小,恢复快,但可能丢失最后一次快照后的数据;-AOF:记录所有写操作命令,文件大,恢复慢,但数据安全性高,支持追加同步(everysec/always)。解析:RDB基于内存快照,适合备份;AOF基于日志,适合数据一致性要求高的场景。两者可结合使用(RDB+AOF)。####2.HTTP和HTTPS的主要区别答案:-安全性:HTTPS通过SSL/TLS加密传输数据,HTTP为明文传输;-端口:HTTP默认80端口,HTTPS默认443端口;-证书:HTTPS需CA证书验证服务器身份,HTTP无需。解析:HTTPS加密过程:客户端发送请求→服务器返回证书→客户端验证证书→协商密钥→加密通信。####3.数据库索引的作用及过多索引的缺点答案:-作用:加速查询(如`WHERE`、`JOIN`),避免全表扫描;-缺点:占用存储空间,降低`INSERT/UPDATE/DELETE`速度(需维护索引结构),可能导致索引失效(如对索引列使用函数)。解析:索引本质是数据结构(如B+树),查询时通过索引定位数据,但写操作需同步更新索引。####4.CAP理论及分布式系统中的权衡答案:-CAP理论:分布式系统最多满足一致性(C)、可用性(A)、分区容错性(P)中的两项;-权衡:-CP系统(如ZooKeeper):牺牲可用性保证一致性;-AP系统(如Eureka):牺牲一致性保证可用性;-CA系统(如传统关系型数据库)不适用于分布式场景。解析:分区容错性(P)是分布式系统的必然要求,因此需在C和A间权衡。###系统设计题答案设计思路:1.架构分层:接入层(Nginx负载均衡)→应用层(微服务)→缓存层(Redis)→存储层(MySQL);2.核心模块:-秒杀接口:前端请求→Nginx限流(令牌桶)→应用层校验(用户/商品状态)→Redis预减库存;-库存扣减:Redis预减成功→消息队列(RabbitMQ/Kafka)异步扣减MySQL库存;-用户下单:消息队列消费→生成订单→返回结果;3.高并发优化:-限流:Nginx限流+Redis分布式限流(如Lua脚本);-缓存:Redis缓存商品信息、用户请求结果;-降级:库存不足时直接返回失败,避免无效请求;-消息队列:削峰填谷,缓冲高并发请求;4.数据一致性:-最终一致性:Redis预减库存→消息队列异步扣减MySQL;-幂等设计:用户ID+商品ID作为唯一键,防止重复下单。解析:秒杀系统核心是“抗流量”和“保数据”,通过限流、缓存、异步处理应对高并发,通过消息队列保证最终一致性。###项目/场景题答案回答框架:1.项目背景:简述项目目标(如“开发一个实时数据监控平台

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论