职位题库

后端开发工程师面试题库

面向后端开发工程师相关面试,围绕系统设计、算法、MySQL、缓存、项目经验等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

1256 道题目建议用时 3768 分钟专项面试练习

全部题目 1256 道题

973

你使用的乐观锁是如何设计的?版本号如何定义,发生并发写冲突时如何重试?

考察候选人对乐观锁机制的理解深度,包括版本号设计、冲突检测与重试策略,以及在实际项目中的落地经验。
974

为什么选择 ClickHouse,而不是传统的 MySQL 事务型数据库?

考察候选人对OLAP与OLTP数据库差异的理解,以及技术选型时的权衡能力。
975

介绍一下 Go 的 GMP 调度模型。G、M、P 分别是什么?

考察候选人对Go运行时调度机制的理解,包括Goroutine、线程、处理器的角色和协作方式。
976

如何使用 HashMap 和双向链表实现一个时间复杂度为 O(1) 的 LRU Cache?get 和 put 分别如何操作?

考察候选人对LRU缓存底层数据结构的理解,以及O(1)时间复杂度的实现能力。
977

大量缓存同时失效并导致请求打到数据库时,应如何处理?

考察候选人对缓存雪崩问题的理解和应对策略,包括预防和兜底方案。
978

请介绍一个你做过的 Java 后端项目,重点说明系统核心架构、高并发下的性能与稳定性保障、数据库瓶颈及优化,以及你具体负责的模块和遇到的难点。

考察候选人项目经验的真实性、架构设计能力、高并发与数据库优化的实战理解,以及个人在项目中的具体贡献。
979

请解释 Java 内存模型(JMM)如何保证线程之间的可见性、有序性和原子性?volatile 和 synchronized 的区别及底层实现原理是什么?

考察对 Java 并发底层原理的理解,包括 JMM 的三大特性、volatile 与 synchronized 的语义和实现机制。
980

请说明 HashMap 的底层实现,JDK 8 中为什么引入红黑树?ConcurrentHashMap 的分段锁机制与 JDK 1.8 之后的 CAS+红黑树实现有何不同?

考察对 HashMap 与 ConcurrentHashMap 底层数据结构、并发安全机制及版本演进的理解。
981

请解释线程池参数的含义,如何选择合适的线程池?submit() 和 execute() 的区别是什么?线程池满了之后会发生什么?如何避免?

考察对线程池核心参数、任务提交方式、拒绝策略及容量规划的理解。
982

请分享一次线上 JVM 调优经历:如何分析 OOM 和频繁 Full GC 问题?

考察线上 JVM 问题的排查思路、工具使用和调优经验。
983

请说明HTTP长连接与短连接的区别,并解释长连接的目的。

考察对HTTP连接管理机制的理解,以及长连接在性能优化中的作用。
984

请列举你知道的保障负载均衡的方法,并说明其原理。

考察对负载均衡算法和实现方式的掌握程度。
返回面试题库