```html
欢迎访问 kaoacca.cn - 专业的计算机基础面试题总结与学习平台

计算机基础面试题总结

汇聚全网高频考点,深度解析计算机核心基础知识,助您轻松应对大厂面试。涵盖网络、系统、数据库、数据结构及组成原理五大模块。

⚡ 核心知识模块概览

计算机网络

从OSI七层模型到TCP/IP协议簇,深入理解HTTP/HTTPS、TCP三次握手、UDP、DNS解析等核心协议。掌握IP地址分类、子网掩码计算及常见的网络故障排查思路。

操作系统

聚焦进程与线程的区别、死锁的产生条件与预防、内存管理(分页分段、虚拟内存)、Linux常用命令及文件系统原理。解析Linux内核调度算法与IO模型。

数据库原理

SQL语句优化、事务ACID特性、隔离级别、索引结构(B+树 vs Hash)、锁机制(行锁、表锁、乐观锁、悲观锁)以及MySQL主从复制原理。

数据结构与算法

链表、树(二叉树、红黑树、B树)、图的基本操作,排序算法的时间复杂度分析,哈希表冲突解决策略。重点掌握大厂常考的手撕代码题。

📚 高频考点深度解析

1. TCP 三次握手与四次挥手

在面试中,TCP连接建立和释放是必考题。三次握手是为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。第一次握手:客户端发送SYN包;第二次握手:服务端回复SYN+ACK包;第三次握手:客户端回复ACK包。四次挥手则是基于TCP的全双工特性,当一端FIN后,另一端可能还有数据未发送完,所以需要ACK确认,待数据发送完毕后再发送FIN。

2. HTTP 与 HTTPS 的区别

HTTP是超文本传输协议,信息是明文传输的;HTTPS则是具有安全性的SSL加密传输协议。HTTPS = HTTP + SSL/TLS。主要区别包括:端口不同(80 vs 443),安全性不同(明文 vs 加密),需要证书,以及连接方式不同(HTTP是无状态的,HTTPS基于SSL协议构建)。HTTPS通过公钥加密交换对称密钥,后续通信使用对称密钥加密,兼顾了安全性和效率。

3. DNS 解析过程

  • 浏览器缓存:浏览器先检查自身缓存中是否有该域名对应的IP地址。
  • 系统缓存:若未找到,查询操作系统HOSTS文件及本地DNS缓存。
  • 递归查询:向本地DNS服务器(LDNS)发起查询。
  • 迭代查询:LDNS向根域名服务器、顶级域名服务器(TLD)、权威域名服务器依次查询,最终获取IP地址并返回给客户端。

1. 进程与线程的区别

进程是资源分配的基本单位,而线程是CPU调度的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源(如内存空间、文件描述符),但拥有独立的栈空间和寄存器状态。线程切换的开销远小于进程切换。死锁通常发生在多线程环境中。

2. 死锁产生的四个必要条件

  • 互斥条件:资源只能被一个线程占用。
  • 请求与保持条件:线程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他线程占有。
  • 不剥夺条件:线程已获得的资源在未使用完之前,不能被其他线程强行剥夺。
  • 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。

预防死锁的方法包括破坏上述四个条件中的任意一个,例如采用资源预分配法破坏请求与保持条件,或采用资源有序分配法破坏循环等待条件。

3. Linux 常用命令

查看进程

ps -ef | grep java top

查看端口占用

netstat -tulnp | grep 8080

查看日志

tail -f /var/log/messages grep "error" app.log

1. MySQL 索引底层数据结构

MySQL InnoDB引擎默认使用B+树作为索引结构。与B树相比,B+树的所有数据都存储在叶子节点中,非叶子节点仅存储键值,这使得B+树在同样的磁盘块大小下能容纳更多的键值,从而降低树的高度,减少IO次数。此外,B+树的叶子节点之间通过双向链表连接,非常适合范围查询。

2. 事务的 ACID 特性

  • 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性(Consistency):事务执行前后,数据库从一个一致性状态变换到另一个一致性状态。
  • 隔离性(Isolation):一个事务的执行不能被其他事务干扰。
  • 持久性(Durability):一旦事务提交,对数据的修改就是永久的,即使系统故障也不会丢失。

3. 事务隔离级别

隔离级别 脏读 不可重复读 幻读
读未提交 (Read Uncommitted) 可能 可能 可能
读已提交 (Read Committed) 不可能 可能 可能
可重复读 (Repeatable Read) 不可能 不可能 可能(InnoDB通过MVCC解决)
串行化 (Serializable) 不可能 不可能 不可能

⚙️ 计算机组成原理精讲

CPU 缓存一致性协议 (MESI)

在多核处理器中,每个核心都有自己的L1/L2缓存。当多个核心同时访问同一块内存数据时,如何保证数据的一致性是一个核心问题。MESI协议(Modified, Exclusive, Shared, Invalid)通过状态位来管理缓存行。

  • Modified(修改):数据已被修改,且与主存不同步,仅存在于当前缓存中。
  • Exclusive(独占):数据与主存一致,且仅存在于当前缓存中。
  • Shared(共享):数据与主存一致,且可能存在于其他缓存中。
  • Invalid(无效):数据无效,缓存行未使用。

当某个核心需要写入数据时,它会广播消息使其他核心中该数据的缓存行变为Invalid状态,从而保证数据一致性。这是现代计算机体系结构中非常经典的问题。

📅 计算机基础复习时间轴

第一阶段:基础概念

重点掌握计算机组成原理的基本概念,如冯诺依曼架构、指令集、存储器层次结构。理解数据在计算机中的表示方式(原码、反码、补码)。

第二阶段:网络与系统

深入学习TCP/IP协议栈,理解HTTP/1.1与HTTP/2的区别。同时,掌握Linux操作系统的基本命令、进程管理和文件系统原理。

第三阶段:数据库与中间件

深入理解关系型数据库原理,包括索引优化、事务隔离、锁机制。了解Redis等NoSQL数据库的基本原理及应用场景。

第四阶段:算法与实战

刷LeetCode经典算法题,重点练习链表、树、动态规划。结合项目经验,梳理项目中用到的技术点,准备面试话术。

🔥 网友最关心的热点问题

Q: 计算机基础面试中,算法占比多少?

A: 对于初级职位,算法题通常占总分的30%-50%。大厂尤其重视手写代码能力,常见的题型包括反转链表、二叉树遍历、快速排序等。建议每天坚持练习2-3道LeetCode题目,保持手感。

Q: 计算机网络和操作系统哪个更重要?

A: 两者都至关重要,取决于岗位方向。后端开发更侧重网络协议(HTTP/TCP)和操作系统(Linux/并发),而嵌入式或客户端开发可能更侧重计算机组成原理和操作系统底层。建议全面复习,重点突破。

Q: 如何高效复习数据库索引?

A: 不要死记硬背,建议画图理解B+树的结构。重点理解为什么选择B+树而不是B树或Hash树。同时,通过实际SQL语句分析执行计划(EXPLAIN),观察索引是否生效,这样记忆更深刻。

Q: 面试中遇到不会的问题怎么办?

A: 诚实回答,不要强行编造。可以尝试阐述自己的解题思路,或者表明自己目前不了解,但表示愿意学习。面试官往往更看重解决问题的思维和潜力,而不是死记硬背的知识。

关于本站:计算机基础面试题总结

本站 kaoacca.cn 致力于为广大计算机专业学生及求职者提供一份详尽、准确、及时的 计算机基础面试题总结。我们深知,在激烈的就业竞争中,扎实的计算机基础是通往大厂的关键敲门砖。因此,我们精心整理了来自各大互联网公司的真实面试真题,并结合最新的行业趋势,对知识点进行了系统的梳理和深度解析。

我们的内容不仅限于简单的问答,更注重知识的内在逻辑和实际应用场景。例如,在讲解 计算机网络 时,我们不仅介绍协议本身,还结合Wireshark抓包分析,帮助读者直观理解数据包的传输过程;在讲解 操作系统 时,我们通过Linux命令的实际操作,让读者掌握系统调用的底层原理。

此外,我们还特别设置了“网友热问”和“备考小贴士”等板块,旨在解决读者在复习过程中遇到的实际困难和心理困惑。我们相信,通过本站提供的 计算机基础面试题总结,读者能够建立起完整的知识体系,提升解决问题的能力,从而在面试中脱颖而出,获得理想的Offer。

```
斌知网
蜀ICP备2026017620号-5