🚀 速通 · 计算机基础高频面试题

2149 words
11 minutes
🚀 速通 · 计算机基础高频面试题

🚀 速通 · 计算机基础高频面试题#


🎯 你要达到什么水平#

能回答计算机网络、操作系统、数据结构与算法、数据库的常见面试题。 对于AI Agent岗位,计算机网络和数据库问得最多,操作系统和数据结构也会涉及。


📦 高频面试题速览#

类别问题数优先级
计算机网络6⭐⭐⭐⭐⭐
操作系统5⭐⭐⭐⭐
数据结构与算法5⭐⭐⭐⭐
数据库4⭐⭐⭐⭐⭐

🌐 计算机网络#

Q1:从浏览器输入URL到页面显示,发生了什么?#

这是最经典的问题,需要完整说清楚每一步:

1. DNS解析:浏览器缓存→系统缓存→路由器缓存→根DNS服务器
2. TCP三次握手:建立连接(SYN→SYN+ACK→ACK)
3. 发送HTTP请求:请求行、请求头、请求体
4. 服务器处理请求:返回HTTP响应(状态码、响应头、响应体)
5. 浏览器解析渲染:HTML→DOM树,CSS→CSSOM树,合并→布局→绘制
6. TCP四次挥手:断开连接(FIN→ACK→FIN→ACK)

常追问:「为什么是三次握手,不是两次或四次?」

两次无法防止已失效的连接请求到达服务器(历史重复SYN)。
三次握手可以让客户端确认服务器能收能发,服务器也能确认客户端能收能发。

Q2:HTTP和HTTPS的区别?#

HTTP明文传输,HTTPS加密传输(SSL/TLS)
HTTPS默认端口443,HTTP默认80
HTTPS需要CA证书,验证服务器身份
HTTPS比HTTP慢(加密解密+握手延迟)
HTTPS的核心:对称加密(加密数据)+非对称加密(交换密钥)+CA证书(验证身份)

Q3:HTTP1.0,1.1,2.0的区别?#

版本特性
HTTP/1.0短连接,每个请求新建TCP连接
HTTP/1.1持久连接(keep-alive)、管道化、Host头、分块传输
HTTP/2.0多路复用(一个TCP连接并发多个请求)、头部压缩、服务器推送

Q4:TCP和UDP的区别?#

TCP面向连接、可靠、有序、有流量控制和拥塞控制
UDP无连接、不可靠、无序、开销小、实时性好
TCP适用:网页、文件传输、邮件
UDP适用:视频直播、在线游戏、DNS查询

Q5:GET和POST的区别?#

GET:数据附加在URL上,长度受限,不安全,可缓存,幂等
POST:数据在请求体中,无长度限制,相对安全,不可缓存,非幂等
实际上:GET也可以发请求体,POST也可以把参数放URL,
但规范建议 GET用于查询,POST用于创建/修改。

Q6:Cookie和Session的区别?#

Cookie存在客户端(浏览器),Session存在服务器端
Cookie大小有限制(4KB),Session可存任意大小
Cookie不安全(可被篡改),Session更安全(但需防Session劫持)
配合使用:Session ID通常存在Cookie中

💻 操作系统#

Q7:进程和线程的区别?#

进程是资源分配的基本单位,线程是CPU调度的基本单位
进程有独立的地址空间,线程共享进程的地址空间
进程切换开销大,线程切换开销小
进程间通信(IPC)复杂,线程间通信简单(共享内存+同步)

Q8:死锁的四个必要条件?如何避免?#

四个条件(缺一不可):
1. 互斥:资源一次只能被一个进程使用
2. 持有并等待:进程持有资源同时等待其他资源
3. 不可剥夺:资源只能由持有者主动释放
4. 循环等待:多个进程形成循环等待链
处理方法:
- 预防:破坏四个条件之一
- 避免:银行家算法(判断分配后是否安全)
- 检测:检测到死锁后强制释放
- 忽略:Unix/Linux采取鸵鸟策略(假装不存在)

Q9:虚拟内存和分页?#

虚拟内存:每个进程有独立的虚拟地址空间,通过MMU映射到物理内存
分页:将虚拟地址空间和物理内存都分成固定大小的页(通常4KB)
页面置换算法:FIFO、LRU(最近最久未使用)、LFU(最少使用)
LRU的近似实现:Clock算法(第二次机会算法)

Q10:用户态和内核态的区别?#

用户态:应用程序运行的模式,权限受限,不能直接访问硬件
内核态:操作系统运行的模式,可执行特权指令,访问所有资源
系统调用:用户态程序请求内核态服务的接口
常见系统调用:read、write、fork、open、mmap

Q11:Linux常用命令?#

必会:
ls -la # 列出文件详情
ps -ef / top/htop # 查看进程
netstat -tlnp # 查看端口
grep / awk / sed # 文本处理三剑客
chmod / chown # 权限管理
scp / rsync # 文件传输
systemctl # 服务管理
docker ps / logs # Docker常用

🗃️ 数据结构与算法#

Q12:数组和链表的区别?#

数组:连续内存,随机访问O(1),插入/删除O(n)
链表:非连续内存,随机访问O(n),插入/删除O(1)
链表种类:单向、双向、循环

Q13:栈和队列的区别及应用?#

栈:后进先出(LIFO),应用:函数调用栈、括号匹配、浏览器的前进后退
队列:先进先出(FIFO),应用:消息队列、任务调度、BFS
面试常考:用两个栈实现队列、用两个队列实现栈

Q14:排序算法的时间复杂度和稳定性?#

算法平均时间最坏时间空间稳定
冒泡O(n²)O(n²)O(1)
选择O(n²)O(n²)O(1)
插入O(n²)O(n²)O(1)
快排O(n log n)O(n²)O(log n)
归并O(n log n)O(n log n)O(n)
堆排O(n log n)O(n log n)O(1)

面试最高频: 快排(思想 + 手写)和归并(思想 + 手写变形)


Q15:哈希表(HashMap)的冲突解决方法?#

1. 链地址法(拉链法):同一位置用链表/红黑树存储(Java HashMap)
2. 开放寻址法:冲突时寻找下一个空位(ThreadLocalMap)
3. 再哈希法:用另一个哈希函数计算
4. 建立公共溢出区

Q16:树的基本概念?二叉搜索树、平衡二叉树(AVL/红黑树)?#

二叉搜索树:左<根<右,查找 O(h)
AVL树:任何节点左右子树高度差不超过1,严格平衡
红黑树:近似平衡(最长路径不超过最短路径2倍),旋转少,性能好
应用:TreeMap/TreeSet底层是红黑树,HashMap(JDK1.8+)的链表转红黑树

🗄️ 数据库#

Q17:为什么用B+树做索引,不用B树或红黑树?#

B+树:
- 非叶子节点只存索引(不存数据),存储更多key,降低树高
- 叶子节点用链表相连,支持范围查询(区间扫描)
- 所有数据都在叶子节点,查询时间稳定
对比B树:非叶子节点也存数据,树更高,范围查询需要回溯
对比红黑树:二叉树,深度大,磁盘IO次数多(不适合外存)

Q18:事务的ACID特性?#

A(Atomicity 原子性):事务要么全部成功,要么全部回滚
C(Consistency 一致性):事务前后数据完整性约束不被破坏
I(Isolation 隔离性):并发事务之间互不干扰
D(Durability 持久性):事务提交后改变是永久的
实现:原子性靠undo log,持久性靠redo log,隔离性靠锁和MVCC

Q19:事务隔离级别与各自的问题?#

隔离级别脏读不可重复读幻读
读未提交✅ 可能可能可能
读已提交❌ 解决可能可能
可重复读❌ 解决可能(InnoDB通过间隙锁解决)
可串行化

MySQL默认隔离级别:可重复读


Q20:索引失效的场景有哪些?#

1. 对索引列使用函数:WHERE YEAR(create_time) = 2026
2. 隐式类型转换:WHERE phone = 13800000000(phone是varchar)
3. 最左前缀原则:联合索引(a,b,c),只查b或c
4. LIKE以%开头:WHERE name LIKE '%张三'
5. OR条件中有非索引列
6. 索引列参与计算:WHERE age + 1 = 20
7. 数据分布不均匀,优化器认为全表扫描更快

⚡ 速通建议#

计算机基础准备策略:
1. 网络:重点HTTP、TCP/UDP、三次握手四次挥手
2. 操作系统:进程线程、死锁、虚拟内存
3. 数据结构:数组/链表/栈/队列/树/哈希表,快排必会手写
4. 数据库:索引原理(B+树)、事务隔离级别、索引失效
刷题建议:
- LeetCode热题100:Array/String/Stack/Queue类Easy-Medium
- SQLZoo刷一遍基本SQL
- 每天练习手写一个排序(快排/归并)

⏱ 准备时间: 3天(分散在两周内每天看一部分) 面试杀伤力: ⭐⭐⭐⭐⭐ 基础题答不好直接挂,答好了是「扎实」的评价

Share Article

If this article helped you, please share it with others!

🚀 速通 · 计算机基础高频面试题
https://estars-blog.pages.dev/posts/精华-速通_14_计算机基础高频面试题/
Author
Estars
Published at
2026-06-16
License
CC BY-NC-SA 4.0
Profile Image of the Author
Estars
这条路要走完,才能看到世界的终点,是海纳百川,还是星火燎原。
公告
欢迎来到我的博客!这是一则示例公告。
Music
Cover

Music

No playing

0:00 0:00
No lyrics available
Categories
Tags
Site Statistics
Posts
85
Categories
7
Tags
15
Total Words
218,958
Running Days
0 days
Last Activity
0 days ago

Table of Contents