计算机基础面试高频题_第1页
计算机基础面试高频题_第2页
计算机基础面试高频题_第3页
计算机基础面试高频题_第4页
全文预览已结束

下载本文档

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

文档简介

一、计算机基础高频题1.进程与线程的本质区别进程:操作系统进行资源分配的基本单位,拥有独立的虚拟地址空间,进程间相互隔离,崩溃互不影响。线程:CPU调度和执行的基本单位,同一进程内的线程共享进程资源(全局变量、堆等),但各自拥有独立的栈空间和程序计数器。1切换成本:进程切换涉及地址空间切换,开销大;线程切换仅保存/恢复寄存器状态,开销小。2.TCP三次握手为何不是两次第一次:客户端发送SYN,进入SYN_SENT状态。第二次:服务端回复SYN+ACK,进入SYN_RCVD状态。第三次:客户端回复ACK,双方进入ESTABLISHED状态。为什么不能两次:若只有两次握手,服务端无法确认客户端是否收到了自己的SYN+ACK,可能导致服务端在客户端未准备好的情况下浪费资源建立连接。1,123.HTTPS加密过程采用混合加密体系:客户端先通过非对称加密(RSA/ECC)与服务端协商对称密钥,后续通信使用对称加密(AES)传输数据。通过证书链验证确保服务端身份可信,防止中间人攻击。14.TCP与UDP的区别对比项TCPUDP连接方式面向连接无连接可靠性可靠(序号确认、超时重传、流量控制、拥塞控制)不可靠传输效率较低较高适用场景文件传输、网页浏览视频直播、语音通话15.死锁的四个必要条件及解决方案四个条件:互斥、持有并等待、不可抢占、循环等待。1解决方案:破坏任一条件即可预防死锁,如按固定顺序加锁(破坏循环等待)、设置超时机制(破坏不可抢占)。二、Java语言核心题(以Java为例)1.HashMap底层原理及JDK1.7与1.8的区别底层结构:数组+链表(JDK1.7)→数组+链表+红黑树(JDK1.8,链表长度≥8且数组长度≥64时转红黑树)。插入方式:1.7头插法(多线程扩容可能死循环),1.8尾插法(解决死循环问题)。线程安全:HashMap非线程安全,ConcurrentHashMap在1.7采用分段锁,1.8采用CAS+synchronized实现线程安全。1,112.String为什么设计成不可变安全性:防止被篡改,适合作为HashMap的Key。线程安全:不可变对象天然线程安全。缓存Hash:String的hash值可缓存,提升HashMap等结构的性能。113.线程池7个核心参数corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(空闲线程存活时间)、unit(时间单位)、workQueue(工作队列)、threadFactory(线程工厂)、handler(拒绝策略)。拒绝策略:AbortPolicy(默认抛异常)、CallerRunsPolicy(调用者线程执行)、DiscardPolicy(静默丢弃)、DiscardOldestPolicy(丢弃最老任务)。114.SpringIOC与AOP原理IOC(控制反转):通过反射和注解将对象创建和依赖注入交由Spring容器管理,核心是BeanFactory和ApplicationContext。11AOP(面向切面):基于动态代理实现,JDK动态代理(基于接口)和CGLIB(基于子类继承),常用于日志、事务、权限校验等横切关注点。115.Spring循环依赖解决方案通过三级缓存解决setter注入的循环依赖:一级缓存(singletonObjects):存放完整Bean。二级缓存(earlySingletonObjects):存放早期暴露的Bean。三级缓存(singletonFactories):存放Bean工厂,用于生成代理对象。11️三、数据库与缓存1.MySQL索引为何用B+树层高更低:B+树非叶子节点不存数据,单页可存更多索引项,树高通常3-4层,IO次数少。范围查询友好:叶子节点通过双向链表连接,适合范围查询和排序。磁盘友好:数据集中在叶子节点,符合局部性原理。1,112.MySQL事务ACID特性原子性(A):通过undolog实现回滚。一致性(C):事务执行前后数据保持一致。隔离性(I):通过锁和MVCC(多版本并发控制)实现。持久性(D):通过redolog保证事务提交后数据不丢失。1,113.Redis缓存穿透、击穿、雪崩解决方案缓存穿透(查询不存在的数据):布隆过滤器、缓存空值。缓存击穿(热点Key过期):互斥锁、逻辑过期。缓存雪崩(大量Key同时过期):随机过期时间、Redis集群高可用。1,114.MySQL与Redis数据一致性方案先更新数据库再删除缓存(CacheAsidePattern):主流方案,配合重试机制保证最终一致性。延时双删:先删缓存→更新DB→延时再删缓存。订阅Binlog:通过Canal等工具监听Binlog异步更新缓存。11四、算法与数据结构高频题以下为面试中出现频率最高的算法题,建议重点掌握:题型高频题目链表反转链表、合并K个有序链表、判断链表是否有环、删除倒数第N个节点二叉树二叉树层序遍历、最近公共祖先、最大深度、验证二叉搜索树数组/字符串两数之和、三数之和、无重复字符的最长子串、最长回文子串动态规划爬楼梯、打家劫舍、最长递增子序列、零钱兑换其他LRU缓存、接雨水、滑动窗口最大值、岛屿数量3,14,18解题六步法:复述问题,确认理解无误。澄清边界条件、数据规模。举例验证,构建输入输出示例。头脑风暴,提出多种解法并分析复杂度。代码实现,注意语法正确性。测试调试,检查边界情况。13️五、系统设计与项目经验1.系统设计高频题秒杀系统:核心在于削峰(消息队列)、限流(令牌桶/漏桶)、缓存(Redis预扣库存)、防超卖(分布式锁/Lua脚本)。2,12短链系统:Hash映射、Base62编码、分布式ID生成、缓存+DB存储。即时通讯:WebSocket长连接、消息存储(HBase/Cassandra)、离线消息推送、未读数统计。2.项目经验回答技巧(STAR法则)Situation(情境):项目背景与痛点。Task(任务):你的角色与目标。Action(行动):具体技术方案与决策过程。Result(结果):用量化数据体现成果(如QPS提升50%、响应时间降低30%)。5,10六、2026年面试新趋势AI协同编程:部分企业允许使用Cursor/Copilot,重点考察需求拆解、Prompt工程及AI代码质检能力。4代码调试与Bug修复:新增"带Bug代码修复"题型,要求在30-45分钟内定位并修复边界遗漏、多线程竞争等问题。4场景化算法题:不再单纯考LeetCode原题,更侧重将业务问题抽

温馨提示

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

最新文档

评论

0/150

提交评论