版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026计算机岗面试高频题集含答案考试时间:______分钟总分:______分姓名:______一、单项选择题1.在HTTP/1.1协议中,默认使用的端口号是()。A.21B.22C.80D.4432.TCP协议在建立连接时需要进行三次握手,以下关于三次握手的过程描述错误的是()。A.客户端发送SYN=1,seq=xB.服务器收到SYN包后,发送SYN=1,ACK=1,seq=y,ack=x+1C.客户端收到SYN+ACK包后,发送ACK=1,seq=x+1,ack=y+1D.服务器收到ACK包后,连接建立成功,服务器不需要再发送确认包3.以下关于JavaHashMap的描述中,正确的是()。A.HashMap是线程安全的,在多线程环境下可以直接使用B.HashMap的底层实现是红黑树C.HashMap在JDK1.8之后,当链表长度超过8且数组长度大于等于64时,链表会转化为红黑树D.HashMap允许Key或Value为null4.MySQL中,InnoDB引擎的默认事务隔离级别是()。A.READUNCOMMITTEDB.READCOMMITTEDC.REPEATABLEREADD.SERIALIZABLE5.关于Redis的数据类型,以下说法正确的是()。A.SET集合中可以包含重复元素B.Hash结构中,key是唯一的,value也是唯一的C.ZSet(有序集合)可以通过score进行排序D.Redis的List结构在两端插入和删除的时间复杂度都是O(n)6.在分布式系统中,为了解决缓存穿透问题,常用的方案不包括()。A.布隆过滤器B.缓存空对象C.增加请求参数校验D.限制接口请求频率7.操作系统中,产生死锁的四个必要条件不包括()。A.互斥条件B.请求与保持条件C.不剥夺条件D.同步条件8.以下关于JVM垃圾回收算法的描述,错误的是()。A.标记-清除算法会产生内存碎片B.复制算法适用于新生代C.标记-整理算法主要用于老年代D.分代收集算法无法回收所有代的对象9.Vue.js中,v-if和v-show的主要区别是()。A.v-if是静态渲染,v-show是动态渲染B.v-show每次都会重新渲染,v-if只在条件第一次满足时渲染C.v-if有更高的切换开销,v-show有更高的初始渲染开销D.v-if支持在template标签上使用10.关于HTTP状态码401,其含义是()。A.服务器内部错误B.客户端请求被拒绝C.未授权访问,需要用户进行身份验证D.资源未找到二、多项选择题1.以下属于TCP协议特点的有()。A.面向连接B.面向无连接C.提供可靠服务(保证数据不丢失、不重复、按序到达)D.不保证数据到达顺序2.Java中,以下关键字属于volatile关键字特性的有()。A.保证可见性B.保证原子性C.禁止指令重排序D.保证线程安全3.MySQL数据库中,关于索引的描述,正确的有()。A.索引可以大大提高数据的检索速度B.索引会降低数据插入、删除和更新的速度C.在MySQL中,InnoDB引擎的索引结构是B+树D.所有的字段都适合建立索引4.Redis常用的持久化方式包括()。A.RDBB.AOFC.MBRD.JMAP5.在设计高并发秒杀系统时,为了解决超卖问题,可以采取的措施有()。A.数据库乐观锁B.Redis预减库存C.请求队列限流D.消息队列削峰填谷6.算法中,常用的排序算法中时间复杂度为O(nlogn)的有()。A.冒泡排序B.快速排序C.归并排序D.选择排序7.以下关于Git版本控制工具的说法,正确的有()。A.gitadd是将文件暂存到暂存区B.gitcommit是将暂存区的文件提交到本地仓库C.gitpush是将本地仓库的代码推送到远程仓库D.gitmerge是将两个分支的历史记录合并8.微服务架构中,常用的注册中心包括()。A.EurekaB.NacosC.ZookeeperD.Kubernetes9.关于HTTP/2协议,以下描述正确的有()。A.基于二进制格式传输B.支持多路复用,在一个连接上并发传输多个请求C.支持服务器推送D.完全向下兼容HTTP/1.110.在JavaScript中,以下判断变量类型的方法正确的是()。A.typeofB.instanceofC.constructorD.Ototype.toString.call()三、简答题1.请简述TCP三次握手的过程,并解释为什么需要三次握手而不是两次?2.请解释什么是缓存穿透、缓存击穿和缓存雪崩,并分别给出解决方案。3.MySQL的InnoDB引擎中,事务的四大特性(ACID)是什么?请简要说明。4.请简述浏览器输入URL到页面渲染完成的主要过程。5.在Java并发编程中,什么是线程安全?请列举几种实现线程安全的方式。四、算法题1.给定一个链表的头节点head,反转链表,并返回反转后的链表。2.给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。3.给定一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。请说明算法思路,并尽量写出代码实现。4.实现一个LRU(最近最少使用)缓存机制。它应该支持以下操作:获取数据get和写入数据put。获取数据get(key)-如果密钥存在于缓存中,则返回密钥对应的值,否则返回-1。写入数据put(key,value)-如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组数据。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据。五、系统设计题1.请设计一个短链接生成服务(类似于bit.ly)。需求包括:将长URL转换为短URL,且短URL能够重定向回长URL,要求服务具备高可用性。请描述你的设计方案,包括数据结构、核心流程以及如何处理高并发。2.请设计一个高并发的秒杀系统。需求包括:商品库存有限,用户在短时间内大量抢购。请分析系统面临的挑战,并给出相应的技术方案(如前端、后端、数据库、缓存等层面的优化)。试卷答案一、单项选择题1.答案:C解析:HTTP协议默认使用TCP协议传输,其默认端口号为80。HTTPS是HTTP的安全版本,默认端口为443。FTP的默认端口是21,SSH是22。2.答案:D解析:TCP三次握手建立连接后,通信即开始。第三次握手后,客户端发送ACK包确认连接已建立,此时连接已经畅通,服务器不需要再发送SYN包请求建立连接。3.答案:D解析:HashMap允许Key或Value为null,且key值唯一,value值可以重复。HashMap不是线程安全的。HashMap的底层结构是数组+链表+红黑树(JDK1.8之后)。4.答案:C解析:MySQLInnoDB引擎的默认事务隔离级别是REPEATABLEREAD(可重复读)。5.答案:C解析:Redis的ZSet(有序集合)可以通过score进行排序。Set集合中元素唯一。Hash结构中key唯一,value可以有重复。Redis的List结构是双向链表,在两端插入和删除的时间复杂度均为O(1)。6.答案:D解析:限制接口请求频率(如使用Nginx或网关限流)属于流量削峰或防御手段,不是专门针对“缓存穿透”(查询不存在的数据)的缓存解决方案。缓存穿透的解决方案通常是布隆过滤器或缓存空值。7.答案:D解析:死锁的四个必要条件是:互斥条件、请求与保持条件、不剥夺条件、循环等待条件。同步条件不是死锁的必要条件(同步通常指进程间的协作,而非死锁的阻塞)。8.答案:D解析:分代收集算法(如CMS,G1)是基于对象存活周期的不同将内存划分为几块,通常将堆分为新生代和老年代。虽然算法本身(标记-清除、复制、整理)是通用的,但分代收集算法的核心思想就是针对不同代使用不同算法以优化性能。选项D说“无法回收所有代的对象”是错误的,分代算法依然会回收所有代的对象,只是策略不同。9.答案:C解析:`v-if`是“真正的”条件渲染,因为它会确保在切换过程中,条件块内的事件监听器和子组件适当地被销毁和重建,有更高的切换开销。`v-show`只是简单地基于CSS的display属性进行切换,有更高的初始渲染开销。通常频繁切换用`v-show`,运行时条件很少改变用`v-if`。10.答案:C解析:HTTP401Unauthorized表示未授权访问,客户端需要提供有效的身份验证信息(如Token或Cookie)。二、多项选择题1.答案:A,C解析:TCP是面向连接的,保证可靠传输。TCP有序性保证,但题目问的是特点,A和C是核心特点。2.答案:A,B,C解析:`volatile`关键字可以保证可见性(内存可见性)、禁止指令重排序。但`volatile`不保证原子性(如自增操作`i++`在多线程下依然不安全),因此D错误。3.答案:A,B,C解析:索引可以加速查询。索引会占用空间,且在增删改时需要维护索引,降低速度。InnoDB使用B+树索引。并不是所有字段都适合建索引(如性别字段区分度低,不适合单列索引)。4.答案:A,B解析:Redis常用的持久化方式是RDB(快照)和AOF(日志)。MBR和JMAP是JVM相关术语。5.答案:A,B,C,D解析:所有提到的措施都是解决秒杀问题的有效手段。乐观锁防止超卖,Redis预减库存缓解数据库压力,限流防止系统被打挂,消息队列削峰填谷。6.答案:B,C解析:快速排序、归并排序、堆排序的时间复杂度均为O(nlogn)。冒泡排序、选择排序、插入排序的时间复杂度为O(n^2)。7.答案:A,B,C,D解析:这四个命令都是Git中最核心、最常用的命令,涵盖了暂存、提交、推送和合并。8.答案:A,B,C解析:Eureka,Nacos,Zookeeper都是常用的服务注册与发现中心。Kubernetes(K8s)是容器编排平台,不是注册中心。9.答案:A,B,C解析:HTTP/2基于二进制帧传输,支持多路复用(一个连接并发多个请求)和服务器推送。HTTP/2不向下兼容HTTP/1.1(它是HTTP/1.1的升级版,协议格式不同),所以D错误。10.答案:A,B,C,D解析:`typeof`检查基本类型,`instanceof`检查原型链,`constructor`检查构造函数,`Ototype.toString.call()`是判断复杂类型最准确的方法。四种方法在特定场景下都有使用价值。三、简答题1.答案:过程:1.客户端发送SYN=1,seq=x,请求连接。2.服务器收到后,发送SYN=1,ACK=1,seq=y,ack=x+1,确认连接请求。3.客户端收到后,发送ACK=1,seq=x+1,ack=y+1,确认收到服务器的确认。解析:三次握手是为了确认双方的接收能力和发送能力都正常,并同步初始序列号。两次握手无法确认客户端的接收能力(因为如果只有两次,客户端发了请求,服务器回复了,如果服务器没收到客户端的第二次确认,服务器会以为连接建立成功,但客户端可能还在重发请求,造成资源浪费)。三次握手可以防止已失效的连接请求报文段突然又传送到了服务端,造成错误。2.答案:缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,导致每次这个不存在的数据都要走到存储层,造成存储层压力过大。解决方案:布隆过滤器、缓存空值。缓存击穿:指一个key非常热点,在不停地扛着大量请求,一旦该key过期或者被清除掉,瞬间会有大量请求直接打到数据库上,导致数据库压力骤增。解决方案:互斥锁、永不过期(逻辑过期)。缓存雪崩:指大量key在同一时间过期或者Redis故障,导致所有请求直接落到数据库。解决方案:随机过期时间、Redis高可用、限流降级。解析:需要区分这三种现象的根本原因:穿透是查不到(数据不存在),击穿是热点过期,雪崩是集体失效。3.答案:ACID特性:A(原子性):事务是不可分割的工作单位,要么全部成功,要么全部失败。C(一致性):事务执行前后,数据库的完整性约束没有被破坏。I(隔离性):事务内部的操作对其他事务是隔离的,并发执行的事务之间互不干扰。D(持久性):事务一旦提交,对数据的修改是永久性的,即使数据库崩溃也不会丢失。解析:这是数据库事务最核心的理论基础,必须熟练掌握。4.答案:主要过程:1.DNS解析:浏览器将URL中的域名解析为IP地址。2.TCP连接:浏览器与服务器建立TCP连接(三次握手)。3.发送请求:浏览器发送HTTP请求(包含请求行、请求头、请求体)。4.服务器处理:服务器接收请求,解析、执行业务逻辑、查询数据库、生成HTML。5.返回响应:服务器将HTML、CSS、JS等资源通过HTTP响应返回给浏览器。6.浏览器渲染:-构建DOM树。-构建CSSOM树。-合并生成渲染树。-布局:根据渲染树计算元素位置和大小。-绘制:根据计算结果绘制像素。解析:重点在于渲染流程,这是前端性能优化的基础。5.答案:线程安全:指在多线程环境下,多个线程同时访问和操作共享数据时,能够保证数据的一致性和正确性,不会出现脏读、幻读或数据不一致的情况。实现方式:1.同步代码块/方法:使用`synchronized`关键字。2.锁机制:使用`ReentrantLock`等。3.volatile关键字:保证可见性和有序性,但不保证原子性(适用于简单变量)。4.线程安全类:使用`StringBuffer`、`Vector`、`Collections.synchronizedList`、`ConcurrentHashMap`等。5.不可变对象:对象创建后状态不能改变,天然线程安全。6.原子类:如`AtomicInteger`。解析:答出核心定义和常见手段即可。四、算法题1.答案:思路:使用迭代法,定义三个指针:prev(前一个节点)、curr(当前节点)、next(下一个节点)。代码:```javapublicListNodereverseList(ListNodehead){ListNodeprev=null;ListNodecurr=head;while(curr!=null){ListNodenextTemp=curr.next;//保存下一个节点curr.next=prev;//当前节点指向前一个节点(反转)prev=curr;//前指针后移curr=nextTemp;//当前指针后移}returnprev;}```解析:关键在于在修改`curr.next`之前先保存`nextTemp`,否则链表断裂。2.答案:思路:递归解法最简洁。最大深度=左子树深度+右子树深度+1。如果为空节点,深度为0。代码:```javapublicintmaxDepth(TreeNoderoot){if(root==null)return0;intleftDepth=maxDepth(root.left);intrightDepth=maxDepth(root.right);returnMath.max(leftDepth,rightDepth)+1;}```解析:也可以使用层序遍历(BFS)计算层数,但递归法在面试中更常被考察。3.答案:思路:利用异或运算的性质:相同数异或为0,0与任何数异或为该数。遍历数组,所有数两两异或,最后剩下的就是那个只出现一次的数。代码:```javapublicintsingleNumber(int[]nums){intresult=0;for(intnum:nums){result^=num;}returnresult;}```解析:时间复杂度O(n),空间复杂度O(1),这是最优解。4.答案:思路:使用哈希表(Map)存储Key到Node的映射,以便O(1)查找。使用双向链表维护访问顺序。最近访问的放在头部,最久未使用的放在尾部。代码框架:```javaclassLRUCache{classDLinkedNode{intkey;intvalue;DLinkedNodeprev;DLinkedNodenext;}//初始化容量、Map、双向链表头尾哨兵节点//get(key):找到节点->移动到头部->返回value//put(key,value):找到节点->更新value->移动到头部;未找到->创建节点->加入头部->判断容量->若满则删除尾部节点}```解析:核心在于同时利用
温馨提示
- 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事业单位工勤技能-天津-天津家禽饲养员四级(中级工)历年参考题库含答案详解
- 2025-2026学年上升图形说课稿
- 2025年南宁市青秀区街道办人员招聘考试试题及答案详解
- 风机盘管常见故障维修手册
- 2026年幼儿园踢球公开课
- 2026青海省交通工程咨询有限公司校园引才总笔试历年参考题库附带答案详解
- 亚硝酸盐检测方法培训
- 【昭通】2025年云南昭通市市直事业单位公开选调工作人员42人笔试历年典型考题及考点剖析附带答案详解
- 牛场绩效考核制度
- 产品研发与质量控制规范(标准版)
- 人与自然关系课件
- 高中数学建模竞赛试题及答案
- 2025北京语言大学出版社有限公司招聘5人笔试历年典型考点题库附带答案详解3套试卷
评论
0/150
提交评论