版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026计算机岗面试易错题集题型精讲含答案考试时间:______分钟总分:______分姓名:______一、单项选择题1.在单链表中,已知指针s指向链表中的一个节点,若要在s后面插入一个由指针p指向的新节点,则需要执行的语句序列是A.p->next=s->next;s->next=p;B.s->next=p->next;p->next=s;C.p->next=s;s->next=p;D.s->next=p->next;p=s->next;2.下列关于B+树索引的描述中,错误的是A.B+树的所有数据记录都存储在叶子节点上B.B+树的非叶子节点不存储数据记录,只存储键值和指针C.B+树相比于B树,更利于范围查询D.B+树的高度通常比B树要高3.在TCP三次握手过程中,服务器发送的ACK确认号是A.0B.1C.客户端发送的序号+1D.客户端发送的序号4.下列关于Java垃圾回收(GC)的描述中,正确的是A.程序员必须显式地调用System.gc()方法才能回收垃圾B.对象只有在成为不可达对象时才会被回收C.Java垃圾回收器会回收软引用(SoftReference)指向的对象D.finalizer(终结器)方法执行完毕后,对象一定会被回收5.在MySQL数据库中,关于索引的描述,下列说法正确的是A.联合索引在满足最左前缀原则时,索引效率最高B.联合索引中,列的顺序不重要,可以随意交换C.索引可以大大提高数据的更新速度D.所有的查询都应该使用索引来提高效率6.Redis中,以下哪个数据结构最适合实现“最新的N条记录”的排行榜功能?A.StringB.HashC.ListD.SortedSet7.下列关于死锁的描述中,错误的是A.产生死锁的四个必要条件是互斥、请求与保持、不剥夺、循环等待B.破坏“互斥”条件可以避免死锁C.破坏“请求与保持”条件可以避免死锁D.破坏“循环等待”条件可以避免死锁8.在计算机网络中,HTTP协议默认使用的端口号是A.21B.22C.80D.4439.关于递归算法,下列说法正确的是A.递归算法一定比迭代算法效率高B.递归算法在每次调用自身时,参数必须不同C.递归算法必须有一个终止条件D.递归算法的空间复杂度通常低于迭代算法10.在设计高并发系统时,为了防止缓存雪崩,通常的做法不包括A.给缓存数据设置随机过期时间B.使用多级缓存(本地缓存+分布式缓存)C.限制缓存的并发访问量D.禁止使用缓存,直接查询数据库二、多项选择题1.下列哪些是进程的特征?A.动态性B.共享性C.并发性D.独立性2.在Java并发编程中,以下哪些关键字可以用于实现线程同步?A.synchronizedB.volatileC.finalD.static3.关于TCP和UDP的区别,下列说法正确的有A.TCP是面向连接的,UDP是无连接的B.TCP保证数据传输的可靠性,UDP不保证C.TCP是面向字节流的,UDP是面向报文的D.TCP的头部开销比UDP大4.以下哪些情况会导致MySQL数据库中的锁等待或死锁?A.事务A锁定了表1,然后尝试锁定表2;事务B锁定了表2,然后尝试锁定表1B.事务A执行了全表扫描,锁定了所有行C.事务A先插入数据,然后更新数据;事务B先更新数据,然后插入数据,且涉及相同的行D.事务A使用了隔离级别为READUNCOMMITTED5.关于算法的时间复杂度,下列说法正确的有A.O(n)表示算法的执行时间与n成正比B.O(logn)表示算法的执行时间与n的对数成正比C.O(n^2)表示算法的执行时间与n的平方成正比D.算法的时间复杂度越低,执行效率一定越高6.以下哪些属于设计模式中的创建型模式?A.工厂模式B.单例模式C.观察者模式D.建造者模式7.在Linux操作系统中,以下哪些命令可以查看进程信息?A.psB.topC.killD.netstat8.关于分布式系统中的CAP理论,下列说法正确的有A.C(一致性)是指数据在多个副本之间保持一致B.A(可用性)是指系统始终处于可用状态C.P(分区容错性)是分布式系统必须满足的D.在分布式系统中,不可能同时满足C、A、P9.以下哪些是常见的哈希冲突解决方法?A.开放定址法B.链地址法C.再哈希法D.线性探测法10.关于HTTP状态码,下列说法正确的有A.200表示请求成功B.301表示永久重定向C.404表示服务器内部错误D.500表示客户端发送的请求有语法错误三、填空题1.在快速排序算法中,确定基准值(Pivot)的方法有多种,常见的有________法、________法和三数取中法。2.设一个栈的输入序列为1,2,3,4,5,则经过一系列入栈和出栈操作后,栈中元素的可能序列为________。3.在TCP/IP协议栈中,IP协议位于________层,TCP协议位于________层。4.数据库事务的四大特性ACID中,保证在并发环境下数据一致性的特性是________。5.在Java虚拟机(JVM)中,堆内存主要存放________对象,栈内存主要存放________。6.链表反转的算法中,需要维护三个指针变量,分别是________、________和________。7.在设计模式中,属于结构型模式的是________、________和适配器模式。8.Redis中,String类型底层实现通常采用________编码,当存储的值超过一定长度时会自动转换。9.消息队列(MQ)的主要作用包括解耦、________和________。10.在二叉树遍历中,前序遍历的顺序是________、左子树、右子树。四、简答题1.请简述TCP三次握手的过程,并说明为什么要进行三次握手,而不是两次?2.什么是数据库的索引?请列举几种常见的索引类型,并说明它们的适用场景。3.请解释什么是缓存穿透、缓存击穿和缓存雪崩,并分别给出一种解决方案。4.在Java中,String类是不可变的,请解释为什么设计为不可变?有哪些好处?5.什么是死锁?请列举产生死锁的四个必要条件,并说明如何避免死锁。五、综合应用题(手写代码)1.给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。请使用哈希表来实现。2.给定一个链表的头节点head,反转链表,并返回反转后的链表。3.实现一个单例模式(懒加载式,线程安全)。试卷答案一、单项选择题1.A*解析:在单链表中插入节点p到节点s之后,首先需要将p的next指向s的下一个节点(s->next),然后将s的next指向p。即`p->next=s->next;s->next=p;`。选项B是插入到s之前,选项C和D逻辑错误。2.D*解析:B+树的所有数据记录都存储在叶子节点,非叶子节点只存储键值和指针。相比于B树,B+树的高度通常更低(因为非叶子节点不存数据,存储索引效率高,树更矮胖),而不是更高。A、B、C均为B+树正确描述。3.C*解析:在TCP三次握手过程中,客户端发送SYN请求连接,序列号为x。服务器收到后,回复SYN+ACK,确认号为x+1(表示期望收到客户端的下一个字节是x+1),序列号为y。因此服务器发送的ACK确认号是客户端发送的序号+1。4.B*解析:Java垃圾回收器会自动回收不可达对象,无需程序员显式调用(调用System.gc()只是建议JVM启动回收)。软引用会被GC在内存不足时回收。终结器方法执行完毕后,对象仍可能因其他引用而存在,不一定会立即被回收。5.A*解析:MySQL联合索引遵循最左前缀原则,即索引生效必须从左开始连续匹配。联合索引列的顺序非常重要,决定了索引的利用率。索引虽然能加速查询,但会降低数据的插入、删除和更新速度。6.D*解析:Redis的有序集合(SortedSet)基于跳表实现,元素唯一且自动按分值排序,非常适合实现排行榜功能。String适合计数器,Hash适合对象存储,List适合队列。7.B*解析:产生死锁的四个必要条件是:互斥、请求与保持、不剥夺、循环等待。互斥是硬件和操作系统的基本属性,无法破坏,因此无法通过破坏互斥来避免死锁。其他三个条件是可以破坏的。8.C*解析:HTTP协议默认使用的端口号是80,HTTPS协议默认使用的端口号是443。9.C*解析:递归算法必须有一个明确的终止条件(BaseCase),否则会无限递归导致栈溢出。递归算法在每次调用自身时,参数可以相同(如尾递归优化或递归调用自身),参数不同是常见的递归方式但非必须。递归通常比迭代占用更多栈空间,效率不一定高。10.D*解析:禁止使用缓存会导致所有请求直接打在数据库上,这是导致缓存雪崩最严重的情况。缓存雪崩的解决方案包括设置随机过期时间、使用多级缓存、限流等。A、B、C都是正确的防护措施。二、多项选择题1.ABCD*解析:进程的特征包括:动态性(进程是创建的,有生命周期)、并发性(多个进程宏观上同时执行)、独立性(进程是系统资源分配和调度的独立单位)、共享性(进程间可以共享资源)。2.AB*解析:`synchronized`用于互斥同步,`volatile`用于保证可见性和禁止指令重排,两者均可实现线程同步。`final`用于修饰不可变对象,`static`用于修饰类成员变量。3.ABCD*解析:TCP是面向连接、可靠的、面向字节流的;UDP是无连接、不可靠的、面向报文的;TCP头部比UDP头部(8字节)大得多(20字节)。四点均正确。4.AC*解析:A和B是典型的死锁场景(T1锁表A等表B,T2锁表B等表A)。C也是死锁场景(T1插入后更新,T2更新后插入)。D(READUNCOMMITTED)不产生锁,所以不会死锁。5.ABC*解析:O(n)线性,O(logn)对数,O(n^2)平方。时间复杂度越低通常效率越高,但还要考虑常数因子。D说法错误,因为O(n)通常比O(n^2)效率高。6.ABD*解析:创建型模式关注对象的创建过程,包括工厂模式、单例模式、建造者模式。观察者模式属于行为型模式。7.ABC*解析:`ps`查看进程,`top`实时监控,`kill`发送信号终止进程。`netstat`主要用于查看网络连接状态。8.ABCD*解析:CAP理论定义了分布式系统的三个特性:一致性(C)、可用性(A)、分区容错性(P)。P是分布式系统固有的,因此在分区发生时,只能在C和A之间做权衡,无法同时满足三者。9.ABCD*解析:解决哈希冲突的方法包括:开放定址法、链地址法、再哈希法、建立公共溢出区。10.AB*解析:200表示成功,301表示永久重定向。404是客户端错误,500是服务器内部错误。三、填空题1.取第一个元素、取最后一个元素(或三数取中)*解析:快速排序中确定基准值的方法有:选取第一个元素、选取最后一个元素、三数取中法、随机选取法。2.任意合法的出栈序列(例如:31452)*解析:栈是后进先出(LIFO)。输入1,2,3,4,5,合法的出栈序列有很多,只要不违反“先进后出”的顺序即可。3.网络、传输*解析:TCP/IP协议栈自下而上分为:物理层、数据链路层、网络层(IP协议)、传输层(TCP/UDP协议)、应用层。4.一致性*解析:ACID中,A是原子性,C是一致性,I是隔离性,D是持久性。5.对象实例、基本类型或对象引用*解析:堆内存主要存放对象实例,栈内存主要存放基本数据类型的变量和对象的引用(指针)。6.pre、cur、next*解析:链表反转通常使用三个指针:pre指向前一个节点,cur指向当前节点,next指向cur的下一个节点。7.代理模式、装饰器模式*解析:结构型模式用于类和对象的组合,常见的有:适配器模式、桥接模式、组合模式、装饰器模式、代理模式。8.intset(或简单动态字符串)*解析:Redis中,String类型在值比较小且都是整数时,底层使用intset编码;在值较大时使用SDS(简单动态字符串)编码。9.异步解耦、削峰填谷*解析:消息队列的主要作用包括:异步处理(解耦)、应用解耦、流量削峰、消息通信。10.根节点*解析:二叉树前序遍历的顺序是:访问根节点->遍历左子树->遍历右子树。四、简答题1.解析:*过程:1.客户端发送SYN(seq=x)包给服务器;2.服务器收到后回复SYN+ACK(seq=y,ack=x+1);3.客户端收到后回复ACK(seq=x+1,ack=y+1)。*原因:1.同步序列号:确保双方的发送和接收序列号是同步的;2.防止失效的连接请求:防止旧的连接请求突然又传到服务端,导致服务端误以为新连接;3.同步双方的初始序列号:TCP协议中数据包的序号是按顺序传输的,握手过程是为了初始化序列号。2.解析:*定义:索引是帮助MySQL高效获取数据的数据结构。*类型:B+树索引(最常用)、Hash索引、全文索引、R-Tree索引。*场景:B+树索引适用于范围查询、排序、分组查询,是InnoDB引擎的默认索引;Hash索引适用于等值查询(如精确匹配),不支持范围查询;全文索引适用于大文本的搜索。3.解析:*缓存穿透:查询不存在的数据,缓存和数据库都没有,导致请求直接打到数据库。**方案:*使用布隆过滤器,将所有可能存在的数据哈希映射到一个位数组中,请求先过布隆过滤器。*缓存击穿:某个热点key过期,瞬间大量请求直接打到数据库。**方案:*使用互斥锁或永不过期策略,保证只有一个线程去查询数据库并回写缓存。*缓存雪崩:大量key在同一时间过期,导致请求全部打到数据库。**方案:*给缓存设置随机过期时间,避免集中过期;开启限流降级机制。4.解析:*原因:1.线程安全:String不可变意味着它是线程安全的,多线程环境下可以直接共享,无需同步。2.缓存友好:String的哈希值在创建后不会改变,非常适合作为HashMap的键。3.安全性:防止字符串被恶意篡改。4.支持字符串常量池:节省内存开销。5.解析:*定义:死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。*四个条件:1.互斥条件;2.请求与保持条件;3.不剥夺条件;4.循环等待条件。*避免方法:1.破坏互斥条件(很少用);2.破坏请求与保持条件(一次性申请所有资源);3.破坏不剥夺条件(强制释放资源);4.破坏循环等待条件(对资源进行排序,所有进程按顺序申请资源)。五、综合应用题(手写代码)1.解析:*思路:使用哈希表(HashMap)存储数字及其对应的索引。遍历数组,对于每个数字`num`,计算`target-num`,如果该差值在哈希表中,说明找到了答案,返回这两个索引;否则将`num`存入哈希表。*代码:```javapublicint[]twoSum(int[]nums,inttarget){Map<Integer,Integer>map=newHashMap<>();for(inti=0;i<nums.length;i++){intcomplement=target-nums[i];if(map.containsKey(complement)){returnnewint[]{map.get(complement),i};}map.put(nums[i],i);}thrownewIllegalArgumentException("Notwosumsolution");}```2.解析:*思路:使用迭代法,通过三个指针(prev,curr,next)逐个反转链表节点。prev初始化为null,curr初始化为head。*代码:```javapublicListNodereverseList(ListNodehead){ListNodeprev=null;ListNodecurr=head;while(curr!=null){ListNodenextTemp=curr.next;//保存下一个节点curr.next=prev;//当前节点指
温馨提示
- 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年人工智能训练师(四级)案例分析试题及解析
- 企业管理-电动汽车充电设施建设运营企业申请报告模板
- 售后技术人员技能等级考核方案
- 计算机与人工智能导论 课件 第3章-计算机硬件基础
- 检测仪器与仪表课件
- 借调挂职人员管理办法
- 面部整骨培训课件
- GB/T 45654-2025网络安全技术生成式人工智能服务安全基本要求
- 嗜酸性肉芽肿性多血管炎诊治共识解读课件
- 认知功能障碍患者的护理
- 《德州扒鸡》课件
- 高三期末家长座谈会高三不负梦起航千帆竞模板
- GB/T 44570-2024塑料制品聚碳酸酯板材
评论
0/150
提交评论