BAT技术岗笔试真题(含详细答案解析)_第1页
BAT技术岗笔试真题(含详细答案解析)_第2页
BAT技术岗笔试真题(含详细答案解析)_第3页
BAT技术岗笔试真题(含详细答案解析)_第4页
BAT技术岗笔试真题(含详细答案解析)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

BAT技术岗笔试真题(含详细答案解析)适用岗位:后端开发、服务器开发、Java开发|难度:校招笔试中等偏上|题型:选择、填空、简答、编程一、单项选择题(10题)1、以下关于Java接口和抽象类的区别,说法正确的是()A、抽象类和接口都能定义构造方法B、抽象类可以有普通成员变量,接口不能有普通成员变量C、抽象类和接口都支持多继承D、抽象类和接口中所有方法默认都是抽象方法答案:B解析:接口的变量默认是publicstaticfinal常量,不能定义普通成员变量;抽象类可以定义普通成员变量、静态变量。A错误:接口没有构造方法;C错误:Java类是单继承、多实现;D错误:抽象类可以有普通非抽象方法,JDK8+接口也可以有默认方法、静态方法。2、TCP协议中,滑动窗口的主要作用是()A、提高传输速率B、拥塞控制C、流量控制D、差错校验答案:C解析:滑动窗口机制核心是流量控制,根据接收方缓冲区剩余容量,限制发送方发送数据量,避免接收方缓冲区溢出。拥塞控制依靠拥塞窗口,和滑动窗口是两套机制。3、MySQL中,以下索引查询效率最高的是()A、普通索引B、唯一索引C、主键索引D、全文索引答案:C解析:InnoDB引擎中,主键索引是聚簇索引,数据和索引绑定存储,查询直接命中数据;普通索引、唯一索引是二级索引,需要回表查询,效率低于主键索引。4、以下不属于进程调度算法的是()A、FCFSB、LRUC、时间片轮转D、优先级调度答案:B解析:LRU是页面置换算法,用于内存管理;FCFS、时间片轮转、优先级调度均为操作系统进程调度算法。5、Java中,volatile关键字的作用是()A、保证原子性、可见性、有序性B、仅保证可见性和有序性,不保证原子性C、仅保证原子性D、仅保证有序性答案:B解析:volatile可以禁止指令重排、保证多线程变量可见性,但无法保证复合操作(i++)的原子性,原子性需要synchronized或Atomic类保证。6、HTTP1.1相比HTTP1.0最大的改进是()A、支持加密传输B、支持长连接(持久连接)C、支持报文压缩D、支持跨域请求答案:B解析:HTTP1.0默认短连接,一次请求一次连接;HTTP1.1默认开启长连接,复用TCP连接,减少三次握手四次挥手开销,是最核心优化。加密是HTTPS特性。7、Redis中,可实现过期淘汰、且优先淘汰最少使用数据的策略是()A、volatile-ttlB、volatile-lruC、allkeys-lruD、volatile-random答案:B解析:volatile系列只淘汰带过期时间的key,allkeys淘汰所有key;lru是最近最少使用,ttl是优先淘汰即将过期数据。题干限定过期淘汰+最少使用,对应volatile-lru。8、以下关于栈和队列的说法错误的是()A、栈先进后出,队列先进先出B、递归调用使用栈结构实现C、栈和队列都可以使用数组和链表实现D、队列可以实现深度优先遍历答案:D解析:深度优先遍历(DFS)基于栈实现;广度优先遍历(BFS)基于队列实现。9、MySQL事务隔离级别中,可解决幻读问题的是()A、读未提交B、读已提交C、可重复读D、串行化答案:D解析:MySQL默认可重复读,只能解决脏读、不可重复读,无法彻底解决幻读;只有最高级别串行化,完全规避幻读,事务串行执行。10、Java中,HashMap的底层数据结构是(JDK1.8)()A、单纯数组B、数组+链表C、数组+链表+红黑树D、数组+红黑树答案:C解析:JDK1.8及以上,HashMap默认数组+链表,当链表长度大于8、数组容量大于64时,链表转为红黑树,提升查询效率。二、填空题(5题)1、TCP三次握手的核心目的是________、________。答案:确认双方发送能力正常、确认双方接收能力正常2、Java中,==对于基本类型比较的是________,对于引用类型比较的是________。答案:数值本身、对象内存地址3、操作系统中,死锁产生的四个必要条件是:互斥条件、________、________、环路等待。答案:请求与保持、不可剥夺4、MySQLInnoDB引擎事务的四大特性是ACID,分别对应原子性、________、________、持久性。答案:一致性、隔离性5、单例模式中,解决多线程安全问题的常用写法是________、________。答案:双重校验锁、静态内部类三、简答题(4题,BAT高频面试笔试原题)1、简述TCP四次挥手的过程,为什么不能三次挥手?答案解析:(1)四次挥手过程:①客户端主动关闭,发送FIN报文,进入终止等待状态,告知服务端不再发送数据;②服务端收到FIN,返回ACK应答,客户端进入等待状态,此时连接半关闭,服务端仍可向客户端传数据;③服务端数据传输完毕后,主动发送FIN报文,请求关闭服务端侧连接;④客户端收到FIN,返回ACK,等待超时后关闭连接,服务端收到ACK后彻底关闭连接。(2)不能三次挥手的原因:TCP是全双工通信,读写通道相互独立。客户端发送FIN仅代表客户端无数据发送,服务端可能还有未传输完成的数据,不能直接合并挥手步骤,必须分两次分别关闭两端的读写通道,因此需要四次挥手。2、HashMap和ConcurrentHashMap的区别?JDK1.8做了哪些优化?答案解析:(1)核心区别:①HashMap线程不安全,多线程并发插入、扩容会出现数据覆盖、链表成环问题;②ConcurrentHashMap线程安全,适用于并发场景;③HashMap允许key/value为空,ConcurrentHashMap不允许。(2)JDK1.8优化:①底层结构由「数组+链表」改为「数组+链表+红黑树」,优化哈希冲突严重时的查询效率;②放弃分段锁机制,采用CAS+synchronized锁定单个链表/树节点,锁粒度更细,并发性能大幅提升;③优化扩容机制,支持多线程协助扩容,提升扩容效率。3、MySQL索引失效的常见场景有哪些?(至少写出5种)答案解析:1、索引列使用函数、运算、类型转换,例如select*fromuserwhereage+1=20;2、模糊查询左匹配,使用%xxx开头,无法走索引;3、联合索引不遵循最左匹配原则,跳过前置索引列查询;4、使用!=、<>、notin、notexists等反向查询;5、字段隐式类型转换,字符串索引传入数字参数;6、or连接的条件中,有字段无索引,会导致整体索引失效。4、简述Redis缓存穿透、缓存击穿、缓存雪崩的区别及解决方案答案解析:(1)缓存穿透:查询不存在的数据,请求直接打穿到数据库,数据库无数据且不写入缓存,导致大量无效请求访问数据库。解决方案:接口参数校验、空值缓存、布隆过滤器拦截无效key。(2)缓存击穿:热点key过期瞬间,大量并发请求同时访问数据库,瞬间压垮数据库。解决方案:热点key永不过期、互斥锁、后台定时更新热点缓存。(3)缓存雪崩:大量key同时过期或Redis集群宕机,所有请求全部访问数据库,造成数据库崩溃。解决方案:缓存过期时间随机打散、Redis主从集群+哨兵、服务熔断降级、多级缓存。四、编程算法题(BAT校招必考简单中等题)题目:两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。数组中同一个元素在答案里不能重复出现,每种输入只会对应一个答案。示例:输入:nums=[2,7,11,15],target=9输出:[0,1]参考答案(Java):java

importjava.util.HashMap;

importjava.util.Map;

publicclassTwoSum{

publicint[]twoSum(int[]nums,inttarget){

//哈希表存储数值和对应下标,实现一次遍历

Map<Integer,Integer>map=newHashMap<>();

for(inti=0;i<nums.length;i++){

inttemp=target-nums[i];

//校验是否存在匹配数值

if(map.containsKey(temp)){

returnnewint[]{map.get(temp),i};

}

map.put(nums[i],i);

}

returnnewint[]{};

}

}解析:采用哈希表解法,时间复杂度O(n),空间复杂度O(n)。遍历数组时,计算当前数值的互补值,若哈希表中存在互补值,直接返回下标;不存在则存入当前数值和下标,相比双层暴力循环效率大幅提升,是笔试最优解法。五、综合压轴题(BAT后端笔试高频)题目:简述高并发场景下,秒杀系统的核心设计思路,如何解决超卖、并发压力问题?详细答案:1、页面层优化:秒杀页面静态化,缓存静态资源,减少服务器请求压力;设置请求限流、验证码、接口防刷,拦截恶意请求和无效请求。2、网关层优化:通过Nginx限流、负载均衡,分发请求,避免单节点压力过大,过滤非法请求。3、缓存层核心:商品库存提前写入Redis,所有秒杀预校验、库存扣减优先

温馨提示

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

最新文档

评论

0/150

提交评论