面试题:HashMap 扩容时链表与红黑树的转化阈值为什么是 8 和 6
这道题在 Java 面试里出现的频率极高,但真正能答到点上的候选人并不多。大部分人的回答停留在“8 是泊松分布算出来的,6 是为了防止频繁转换”,再追问一句“泊松分布的 λ 是多少、算出来概率多大、为什么不是 7 和 9、为什么中间留了 7 这个空档”,就答不上来了。这篇文章把 HashMap 中 TREEIFY_THRESHOLD、UNTREEIFY_TH
这道题在 Java 面试里出现的频率极高,但真正能答到点上的候选人并不多。大部分人的回答停留在“8 是泊松分布算出来的,6 是为了防止频繁转换”,再追问一句“泊松分布的 λ 是多少、算出来概率多大、为什么不是 7 和 9、为什么中间留了 7 这个空档”,就答不上来了。这篇文章把 HashMap 中 TREEIFY_THRESHOLD、UNTREEIFY_TH
面试里问到「进程和线程的区别」,绝大多数人能背出「进程是资源分配单位,线程是调度单位」。但只要追问一句「那具体共享哪些资源、不共享哪些」,答不上来的人立刻现形。再往下问「线程切换到底比进程切换省了什么」,能说清楚页表、TLB、寄存器、内核栈这几层的就更少了。这篇把这两个问题拆到可验证的粒度:哪些资源是进程级私有、哪些是线程级私有、哪些是进程内共享,以及一次上
标准答案是"防止历史重复连接初始化"。但这题真正的分量在于你能不能用序列号把整个过程讲清楚。 核心:确认双方的双向收发能力 三次握手交换的是 ISN(Initial Sequence Number,初始序列号): 客户端 服务端 |----
这题考察的是对存储介质的理解,而不只是背结论。要点在于:数据库的数据最终要落盘,而磁盘随机 IO 比内存慢 5 个数量级。 先看三个候选的问题 哈希索引:等值查询 O(1),很快。但 不支持范围查询(WHERE age > 20 没法
这题几乎是 Go 面试的开场题,但很多人只答出"一个初始化一个不初始化",没说到点子上。核心差异在于返回的类型和适用场景。 标准答案 | | new(T) | make(T, ...) | |---|---|---| | 返回类型 | *T