已解析题目
后端开发工程师相关题目
缓存和数据库怎么保持数据一致性?还有别的做法吗?
这题考察 Cache Aside 的读写路径、并发竞态、删除失败补偿和一致性取舍,重点不是追求绝对一致,而是控制旧数据窗口。
同题还出现在 1 个面经场景
Linux 的内存布局是什么?
这题考进程虚拟地址空间,回答要按区域、增长方向、权限和虚拟内存映射机制说明。
Raft 算法的原理是什么?
这题考 Raft 如何用更易理解的方式实现共识,回答要覆盖 leader 选举、日志复制和安全提交。
多线程如何防止并发问题?
这题考并发安全的系统化处理,回答要先减少共享,再对必须共享的状态保证原子性、可见性和有序性。
日志服务如何异步写入,避免影响主流程?
这题考异步化、背压和可靠性分级,回答要说明日志不阻塞主流程的同时不能无限丢失或无限占内存。
C++ 虚函数是什么?
考察 C++ 运行时多态的实现和边界,重点是 virtual、vptr/vtable、动态绑定、虚析构和构造析构阶段规则。
C++ new 操作的原理是什么?
考察 C++ 对象创建和释放的两阶段语义,重点是 operator new 分配原始内存、构造函数初始化、异常回滚和 delete 对称释放。
内存对齐的作用是什么?
考察内存布局和硬件访问效率,重点是对齐规则、padding 来源、结构体大小、缓存友好性和 ABI 兼容风险。
Redis Lua 脚本怎么实现分布式锁
这题考察 Redis 分布式锁的正确最小模型:SET NX PX 原子加锁、唯一 value 标识持有者、Lua 原子校验后删除,以及过期、续期和主从故障风险。
同题还出现在 1 个面经场景