文章列表

为什么按位与运算要比取模运算高效?

为什么按位与运算要比取模运算高效?

为什么 HashMap 用 (n-1) & hash 而不是 hash % n?核心在 CPU 指令层面:按位与只需一条 AND 指令、约 1 个时钟周期,而取模要走除法器执行 DIV 指令,延迟 20 个周期起步。但等价的前提是容量必须为 2 的幂,这也是 HashMap 强制 2 的幂容量的根本原因。本文从 CPU 指令、数学原理、源码落地与 JIT 优化边界层层拆解,助你面试满分。


犬小哈2026/8/19Java面试八股文
什么是分段和分页?

什么是分段和分页?

分页和分段是操作系统内存管理的核心考点:分页将内存切为固定大小的页,通过页表映射以消除外部碎片、提高内存利用率;分段按代码段、数据段等逻辑结构划分,便于共享与保护,但存在外部碎片。本文深入讲解地址翻译、多级页表、TLB、缺页中断等原理,并解析 x86-64 Linux 为何放弃分段,助你面试稳过。


犬小哈2026/8/17Java面试八股文
什么是零拷贝?

什么是零拷贝?

零拷贝是什么?本文深入解析零拷贝原理:从传统 I/O 的 4 次拷贝与 4 次上下文切换,到 mmap、sendfile 及 SG-DMA 如何让 CPU 拷贝彻底归零,并结合 Kafka 高吞吐、RocketMQ 内存映射、Netty 零拷贝等实战案例,助你彻底掌握这道高频面试题。


犬小哈2026/8/17Java面试八股文
什么是全双工和半双工?

什么是全双工和半双工?

一文讲透全双工与半双工的区别:半双工双向分时如对讲机,全双工双向同时如打电话,并对比单工通信三种模式。深度解析TCP为什么是全双工、四次挥手的由来、CSMA/CD机制与WebSocket应用,附面试高频追问和记忆口诀,助你轻松拿下操作系统面试题。


犬小哈2026/8/17Java面试八股文
进程间通信方式有哪些?

进程间通信方式有哪些?

详解Linux进程间通信的7种方式:匿名管道、命名管道、消息队列、共享内存、信号量、信号与Socket,深入剖析共享内存为何是最快IPC、管道两次拷贝原理,并覆盖Java进程间通信方案与高频面试追问,助你系统掌握IPC知识,面试答题出彩。


犬小哈2026/8/15Java面试八股文
进程、线程和协程的区别是什么?

进程、线程和协程的区别是什么?

一文搞懂进程、线程和协程的区别:进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态轻量执行单元。深度对比三者的切换开销、内存占用与并发量级,解析上下文切换原理,并涵盖Java虚拟线程与Go goroutine等业界实践,助你面试稳过。


犬小哈2026/8/15Java面试八股文
负载(Load)和 CPU 利用率之间有什么区别?

负载(Load)和 CPU 利用率之间有什么区别?

负载与CPU利用率有什么区别?Load衡量系统排队进程数,包含等待I/O的进程;CPU利用率仅统计CPU非空闲时间占比。面试与运维必考:当Load高但CPU利用率低时,多为磁盘I/O瓶颈。读懂两者组合关系,助你快速定位系统性能瓶颈!


犬小哈2026/8/14Java面试八股文
什么是 Load(负载)?

什么是 Load(负载)?

什么是Load(负载)?本文详解系统平均负载(Load Average)的核心概念,助你轻松区分Load与CPU利用率。深度解析Load飙升时的线上排障思路,教你如何利用top、iostat等命令精准定位CPU或I/O瓶颈。包含面试高频追问与排查口诀,帮助你快速攻克后端面试与运维难题。


犬小哈2026/8/14Java面试八股文
同步、异步、阻塞、非阻塞怎么理解?

同步、异步、阻塞、非阻塞怎么理解?

面试高频考点:怎么理解同步、异步、阻塞与非阻塞?本文通过经典的烧水比喻,将这四个概念映射到具体的 BIO、NIO、AIO 与 IO 多路复用模型上,并深入操作系统底层剖析 epoll 与 io_uring 的真实实现。明确同步异步看结果获取方式,阻塞非阻塞看线程状态,帮你彻底理清网络编程 IO 模型的核心逻辑。


犬小哈2026/8/14Java面试八股文