搜索

it面试常问的技术问题

发表于 2026-10-17 06:07:35 来源:烟消火灭网
面试官问“请说说你理解的面试进程和线程”,一半人卡壳在“理解”两个字上。常问他们能背定义,术问却说不清一个进程里到底装了什么,面试线程又共享了什么。常问说白了,术问进程是面试操作系统分配资源的最小单位,线程是常问CPU调度的最小单位——但这么讲太干。你换个角度想:一个运行中的术问程序就像一家餐厅,进程是面试餐厅本身,有独立的常问厨房、仓库、术问营业执照;线程是面试服务员,共享餐厅的常问桌椅和菜单,但各自接待各自的术问客人。餐厅倒闭,服务员全失业;服务员累死一个,餐厅还能换人接着开。 技术面试常问的第二类问题,逃不开“TCP三次握手为什么不是两次”。标准答案是“防止历史重复连接初始化”,但多数人没意识到,这问题背后考的是你对“不可靠网络”的理解。两次握手只能证明客户端能发、服务端能收,却无法确认服务端的应答是否被客户端正确接收。极端情况:客户端第一次SYN包卡在网络上,超时重发,第二次SYN先到,服务端回了ACK,如果只握两次,客户端会以为这次连接是旧的,直接丢弃——但服务端已经建立连接了,资源白白浪费。三次握手让双方都确认“我能收到你的回复”,才算把“不可靠”变成“相对可靠”。 接着是“HTTP和HTTPS的区别”,这题看着简单,坑在细节。很多人张口就答“HTTPS多了加密”,但面试官想听的是“加密了什么、怎么加密”。HTTP是明文传输,URL、请求头、响应体全裸奔,抓包软件一开全现原形。HTTPS在HTTP和TCP之间加了一层TLS,用非对称加密交换会话密钥,再用对称加密传输数据。关键点在于证书——它解决的是“你连的服务器是不是真的”这个信任问题,而不是单纯防偷听。如果你只背了“加密”,没提证书链校验和中间人攻击,那基本算没答到点上。 再往后,数据库索引为什么用B+树不用哈希表?这个问题的回答能直接反映你有没有真写过业务。哈希表等值查询O(1),但范围查询直接废掉——你查“age between 20 and 30”,哈希索引得全表扫。B+树叶子节点用链表串联,天然支持范围扫描,而且每个节点能存更多键值,树矮,磁盘IO次数少。更现实的是,MySQL的InnoDB主键索引叶子节点存整行数据,二级索引叶子节点存主键值,这设计让“回表”成为常态。你要是连“回表”是什么都没说,面试官心里就有数了。 最后说说“如何排查线上CPU飙高”。这题没标准答案,但考察你调试思路。别上来就扯jstack,先问自己:是用户请求暴增还是代码死循环?实操路径是:top -Hp 找线程PID,printf “%x” 转十六进制,jstack 导出线程栈,grep 到对应线程号,看堆栈卡在哪个类哪一行。有一次我遇到个诡异问题,CPU飙到95%,jstack一看全是GC线程在跑,最后定位到是代码里有个无限循环往ArrayList里add,内存溢出触发频繁Full GC。这种案例比背一百遍“用jstack看线程状态”都管用。 面试官问技术问题,真不是考你背了多少概念。他听的是你有没有在真实环境里踩过坑,有没有把抽象概念落到具体场景里的能力。你回答时能带出“我当时遇到什么情况、怎么排查、为什么这么想”,比任何标准答案都值钱。别怕说错,就怕只会背。
随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by it面试常问的技术问题,烟消火灭网   sitemap

回顶部