FWDD.NET · 技术文档站

范文多多

聚焦后端工程实践:语言教程、功能实现、面试题与运维脚本。每篇都从真实踩坑场景出发,给出可直接复用的代码与取舍依据。

面试题:HTTP/1.1 长连接与 HTTP/2 多路复用的本质区别

很多候选人在被问到「HTTP/1.1 的长连接和 HTTP/2 的多路复用有什么区别」时,答的都是「一个是复用 TCP 连接,一个是并行传输,HTTP/2 更快」。这个回答在面试里几乎等于没答,因为它没有触及二者的本质差异:HTTP/1.1 的长连接解决的是「连接复用」问题,但仍然受制于应用层的请求-响应串行语义;HTTP/2 的多路复用解决的是「帧级并发」

面试题:HashMap 扩容时链表与红黑树的转化阈值为什么是 8 和 6

这道题在 Java 面试里出现的频率极高,但真正能答到点上的候选人并不多。大部分人的回答停留在“8 是泊松分布算出来的,6 是为了防止频繁转换”,再追问一句“泊松分布的 λ 是多少、算出来概率多大、为什么不是 7 和 9、为什么中间留了 7 这个空档”,就答不上来了。这篇文章把 HashMap 中 TREEIFY_THRESHOLD、UNTREEIFY_TH

进程与线程共享哪些资源,切换开销差在哪

面试里问到「进程和线程的区别」,绝大多数人能背出「进程是资源分配单位,线程是调度单位」。但只要追问一句「那具体共享哪些资源、不共享哪些」,答不上来的人立刻现形。再往下问「线程切换到底比进程切换省了什么」,能说清楚页表、TLB、寄存器、内核栈这几层的就更少了。这篇把这两个问题拆到可验证的粒度:哪些资源是进程级私有、哪些是线程级私有、哪些是进程内共享,以及一次上