版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年海尔集团技术研发工程师面试题目及解答一、技术基础知识(5题,每题10分,共50分)1.题目:简述TCP三次握手过程及其作用,并说明如果第三次握手时客户端发送的确认包丢失,服务器会如何处理?解答:TCP三次握手过程:1.第一次握手:客户端向服务器发送SYN包(序列号seq=x),请求建立连接。2.第二次握手:服务器收到SYN包后,回复SYN+ACK包(序列号seq=y,确认号ack=x+1),表示同意连接。3.第三次握手:客户端收到SYN+ACK包后,发送ACK包(序列号seq=x+1,确认号ack=y+1),完成连接建立。作用:-确保双方均有发送和接收数据的能力。-避免历史连接请求占用资源。第三次握手丢失处理:若客户端的ACK包丢失,服务器会认为连接请求未完成,超时后重发SYN+ACK包。客户端收到重发的SYN+ACK后,仍需发送ACK包,最终完成连接。解析:该问题考察网络协议基础知识,需结合实际场景解释协议细节,体现对TCP连接管理的理解。2.题目:比较JWT(JSONWebToken)和Session在分布式系统中的应用场景和优缺点。解答:JWT:-应用场景:微服务架构、单点登录(SSO)、跨域认证。-优点:无需服务器存储,轻量级,适合分布式系统。-缺点:需要加密存储,过期时间固定,不适合敏感操作。Session:-应用场景:传统单体应用、需要频繁交互的场景。-优点:数据保存在服务器端,安全性高。-缺点:难以扩展,跨域时需配合代理或Redis缓存。解析:需结合分布式系统特性分析两种认证方式的适用性,体现对安全架构的理解。3.题目:解释LRU(LeastRecentlyUsed)缓存算法的原理,并说明如何在Java中实现。解答:原理:-使用双向链表和哈希表结合,链表记录访问顺序,哈希表实现O(1)查找。-当访问元素时,将其移动到链表头部;若缓存满,删除链表尾部元素。Java实现:javaclassLRUCache<K,V>{privateMap<K,Node>map=newHashMap<>();privateNodehead,tail;privateintcapacity;classNode{Kkey;Vvalue;Nodeprev,next;}publicLRUCache(intcapacity){this.capacity=capacity;}publicVget(Kkey){Nodenode=map.get(key);if(node==null)returnnull;moveToHead(node);returnnode.value;}publicvoidput(Kkey,Vvalue){Nodenode=map.get(key);if(node!=null){node.value=value;moveToHead(node);}else{NodenewNode=newNode();newNode.key=key;newNode.value=value;map.put(key,newNode);addToHead(newNode);if(map.size()>capacity){Nodetail=removeTail();map.remove(tail.key);}}}privatevoidmoveToHead(Nodenode){removeNode(node);addToHead(node);}privatevoidaddToHead(Nodenode){node.prev=head;node.next=head.next;head.next.prev=node;head.next=node;}privateNoderemoveTail(){Noderes=tail.prev;removeNode(res);returnres;}privatevoidremoveNode(Nodenode){node.prev.next=node.next;node.next.prev=node.prev;}}解析:需结合数据结构知识解释缓存机制,并展示代码实现,体现工程能力。4.题目:简述多线程中的CAS(Compare-And-Swap)原理及其应用场景。解答:原理:-通过“比较并交换”操作,原子地更新内存值。-若当前值与预期值一致,则更新为新值;否则不操作。应用场景:-Java:`AtomicInteger`、`ConcurrentHashMap`。-分布式:分布式锁、计数器。解析:需结合并发编程知识解释CAS的原子性实现,体现对分布式系统设计的理解。5.题目:解释HTTP和HTTPS的区别,并说明HTTPS握手过程。解答:区别:-HTTP:明文传输,易被窃听。-HTTPS:加密传输,需证书验证,安全性更高。HTTPS握手过程:1.ClientHello:客户端发送支持的加密算法、随机数等。2.ServerHello:服务器选择算法,发送证书、随机数等。3.证书验证:客户端验证证书有效性。4.ClientKeyExchange:客户端生成密钥,加密发送给服务器。5.ServerKeyExchange:服务器解密并生成对称密钥。6.Finished:双方发送握手完成消息。解析:需结合网络安全知识解释HTTPS原理,体现对分布式系统安全设计的理解。二、系统设计(3题,每题20分,共60分)1.题目:设计一个高并发的短链接生成系统,要求支持每日千万级请求。解答:核心思路:-分布式ID生成:使用Snowflake算法生成唯一ID。-缓存层:Redis缓存短链接与长链接映射。-异步处理:Kafka异步处理请求,避免直接访问数据库。-数据库:分库分表存储映射关系。架构图(文字描述):1.请求入口:Nginx负载均衡。2.API层:SpringCloudGateway路由请求。3.缓存层:Redis缓存热点数据。4.异步队列:Kafka处理请求,写入数据库。5.数据库:MySQL分表存储映射关系。代码示例(ID生成):javapublicclassSnowflakeIdWorker{privatelongworkerId;privatelongdatacenterId;privatelongsequence=0L;privatelongtwepoch=1288834974657L;privatelongworkerIdBits=5L;privatelongdatacenterIdBits=5L;privatelongmaxWorkerId=-1L^(-1L<<workerIdBits);privatelongmaxDatacenterId=-1L^(-1L<<datacenterIdBits);privatelongsequenceBits=12L;privatelongworkerIdShift=sequenceBits;privatelongdatacenterIdShift=sequenceBits+workerIdBits;privatelongtimestampLeftShift=sequenceBits+workerIdBits+datacenterIdBits;privatelongsequenceMask=-1L^(-1L<<sequenceBits);privatelonglastTimestamp=-1L;publicSnowflakeIdWorker(longworkerId,longdatacenterId){if(workerId>maxWorkerId||workerId<0){thrownewIllegalArgumentException(String.format("workerIdcan'tbegreaterthan%dorlessthan0",maxWorkerId));}if(datacenterId>maxDatacenterId||datacenterId<0){thrownewIllegalArgumentException(String.format("datacenterIdcan'tbegreaterthan%dorlessthan0",maxDatacenterId));}this.workerId=workerId;this.datacenterId=datacenterId;}publicsynchronizedlongnextId(){longtimestamp=timeGen();if(timestamp<lastTimestamp){thrownewRuntimeException(String.format("Clockmovedbackwards.Refusingtogenerateidfor%dmilliseconds",lastTimestamp-timestamp));}if(lastTimestamp==timestamp){sequence=(sequence+1)&sequenceMask;if(sequence==0){timestamp=tilNextMillis(lastTimestamp);}}else{sequence=0L;}lastTimestamp=timestamp;return((timestamp-twepoch)<<timestampLeftShift)|(datacenterId<<datacenterIdShift)|(workerId<<workerIdShift)|sequence;}privatelongtilNextMillis(longlastTimestamp){longtimestamp=timeGen();while(timestamp<=lastTimestamp){timestamp=timeGen();}returntimestamp;}privatelongtimeGen(){returnSystem.currentTimeMillis();}}解析:需结合分布式系统设计原则,展示架构和代码细节,体现系统设计能力。2.题目:设计一个高并发的秒杀系统,要求支持每秒100万+请求,并防止超卖。解答:核心思路:-分布式锁:Redis分布式锁防止并发库存扣减。-熔断限流:Hystrix或Sentinel防止雪崩效应。-异步扣减:Kafka异步处理订单,避免阻塞接口。-数据库优化:使用乐观锁或行锁扣减库存。架构图(文字描述):1.请求入口:Nginx限流。2.秒杀服务:SpringCloudGateway路由请求。3.分布式锁:Redis实现锁。4.异步队列:Kafka处理订单。5.库存服务:MySQL乐观锁扣减库存。代码示例(Redis锁):javapublicclassRedisLock{privateJedisjedis;publicbooleantryLock(StringlockKey,StringrequestId,intexpireTime){Stringresult=jedis.set(lockKey,requestId,"NX","EX",expireTime);return"OK".equals(result);}publicbooleanreleaseLock(StringlockKey,StringrequestId){Stringscript="ifredis.call('get',KEYS[1])==ARGV[1]then"+"returnredis.call('del',KEYS[1])"+"else"+"return0"+"end";Objectresult=jedis.eval(script,Collections.singletonList(lockKey),Collections.singletonList(requestId));return"1".equals(result.toString());}}解析:需结合高并发场景设计,展示架构和代码细节,体现系统设计能力。3.题目:设计一个分布式任务调度系统,要求支持定时任务、延时任务,并保证可靠性。解答:核心思路:-任务存储:Redis或Zookeeper存储任务信息。-执行器:定时线程池执行任务。-可靠性保证:任务执行成功后写入数据库,失败重试。-分布式协调:使用分布式锁防止任务重复执行。架构图(文字描述):1.任务注册:Zookeeper存储任务信息。2.调度中心:SpringTask定时扫描任务。3.执行器:定时线程池执行任务。4.结果存储:MySQL记录任务执行结果。代码示例(任务注册):javapublicclassTaskService{privateZooKeeperzk;publicvoidregisterTask(StringtaskId,StringtaskType,long
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市有研工程技术研究院有限公司2026届秋季校园招聘17人备考题库及参考答案详解
- 2025年宁夏中科碳基材料产业技术研究院招聘备考题库完整参考答案详解
- 2026年工程项目跟踪管理合同
- 2026年智能医疗数据血缘分析工具采购合同
- 工商银行的抵押合同(标准版)
- 2026年医院外部审计合同
- 中山大学附属第三医院粤东医院2026年合同人员招聘备考题库附答案详解
- 践行习近平生态文明思想解放思想促进高质量研讨材料
- 中华人民共和国药品管理法试题及答案
- 2025年烟台市检察机关公开招聘聘用制书记员的备考题库(24人)参考答案详解
- 特殊疑问句的教学课件
- AI生成时代虚拟生产力与生产关系变革
- 船舶进出港调度智能化方案
- 疾控中心岗位管理办法
- PLC控制技术(三菱FX3U)试题库及答案
- 英文版合同委托付款协议
- 维保项目投标文件终版
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
- 重庆长寿县2025年上半年公开招聘城市协管员试题含答案分析
- 农药剂型与加工课件
- 军队被装管理办法
评论
0/150
提交评论