小厂 Java 面试,难度怎么样?

B站影视 韩国电影 2025-09-25 04:59 3

摘要:打开求职软件,刷到的面经似乎大部分都来自字节、阿里、腾讯等互联网大厂;打开技术社区,讨论的很多都是千亿级流量下的架构演进。这很容易给我们造成一种错觉:仿佛人人都手握大厂 offer,月薪数万。

打开求职软件,刷到的面经似乎大部分都来自字节、阿里、腾讯等互联网大厂;打开技术社区,讨论的很多都是千亿级流量下的架构演进。这很容易给我们造成一种错觉:仿佛人人都手握大厂 offer,月薪数万。

但,让我们清醒一点,回归现实。

真相是,绝大多数求职者的最终归宿,是千千万万个支撑着社会运转的中小厂。 那些“光鲜”的大厂岗位,只是金字塔尖的少数。我们之所以看到那么多大厂信息,一方面是因为大厂员工更愿意分享且更有影响力,另一方面,则是互联网的“幸存者偏差”和流量传播效应,放大了他们的声音。

今天分享一位球友整理的小厂社招面经,这是他面试了非常多的小厂之后总结出来的,真实地反映了市场上大多数 Java 岗位的核心要求,非常具有参考意义。

SQL 题目场景多样,但万变不离其宗。最经典的莫过于“学生-教师-成绩”模型。

统计平均成绩大于 X 分的学生。查询某位老师所教课程的某位学生的学号与姓名。COUNT(*)、COUNT(1)、COUNT(列名) 的区别与效率对比。

小提示: 简历是面试官提问的“靶子”,对于不熟悉的领域(如 JVM),可以先不写,降低被问到的风险。以下所有面试题的答案都可以在 JavaGuide 上找到。

(必考) HashMap:底层数据结构(数组+链表/红黑树)、put 流程、哈希冲突及解决方法。ConcurrentHashMap 的概念及其在 JDK 1.7 和 1.8 中的实现差异。除了 HashMap,还常用哪些集合?对比一下 ArrayList, LinkedList, HashSet 等的使用场景。(必考)线程池: 核心参数有哪些?(corePoolSize, maximumPoolSize, workQueue 等)工作中如何设置这些参数?背后的考量是什么?(IO 密集型 vs CPU 密集型)线程池的工作原理?(新任务提交后的执行流程)了解过 Fork/Join 框架吗?锁: 用过哪些锁?(synchronized, ReentrantLock 等)在什么场景下使用?对它们的底层实现(如 AQS)有了解吗?并发工具类: 用过哪些?(CountDownLatch, Semaphore, CompletableFuture 等) (场景追问) 为什么用 CompletableFuture?它解决了什么问题?内部结构了解吗? (场景追问) 为什么用 CountDownLatch?它解决了什么问题?内部结构了解吗?JVM 的内存结构(运行时数据区)是怎样的?垃圾回收:常见的对象标记算法有哪些?(引用计数、可达性分析)了解哪些垃圾回收算法/垃圾回收器?(如 G1, ZGC)你们部门用的哪个?为什么?Java 类加载流程是怎样的?什么是双亲委派模式?Java 对象一定在堆中分配吗?(可能会涉及栈上分配、TLAB)内存溢出(OOM)和内存泄漏(Memory Leak)的区别?如何排查定位?(实战高频) 有没有 JVM 调优经验?CPU 飙高、内存打满、频繁 GC 等问题如何排查?思路和用到的指令/工具有哪些?索引: 为什么需要索引?它为什么能加速查询?索引失效的常见场景有哪些?为什么选择 B+树作为底层数据结构?如果 SQL 走了索引但依然很慢,可能是什么原因?事务: 事务的四种隔离级别?不同隔离级别的实现原理?什么是 MVCC?锁: MySQL 中有哪些锁?(行锁、表锁、间隙锁等)如何排查和解决死锁问题?SQL 优化: 分享一下你的 SQL 优化经验和思路。如何解读 EXPLAIN 执行计划?关注哪些关键参数?Redis 有哪些基础数据类型?各自的底层数据结构和应用场景是什么?Redis 的两种持久化机制(RDB, AOF)?它们的区别和选型考量?Redis 的内存淘汰策略有哪些?LRU 和 LFU 有什么区别?(场景高频) 什么是缓存穿透、击穿、雪崩?如何解决?(必考) Spring 事务失效的场景有哪些?(非 public 方法、内部调用等),并追问其背后的动态代理原理。Spring 的事务传播机制有哪些?(必考) Spring Boot 自动装配的原理是什么?Spring 是如何解决 Bean 的循环依赖问题的?(三级缓存)什么是 AOP?在你的项目中哪些地方用到了它?Spring Cloud 包含哪些核心组件?各自的作用是什么?Nacos 是如何实现动态路由配置的?服务 A 调用服务 B,底层的通信原理是怎样的?(如 Feign 的原理)核心问题: 面试官通常会让你选择一个你最熟悉/最有难度的项目来介绍。回答策略(STAR 法则):情景(Situation): 先清晰地介绍项目背景和业务需求。难点(Task/Target): 这个需求的技术难点是什么?(比如高并发、数据一致性、性能瓶颈等)行动(Action): 为了解决这个难点,你做了哪些技术调研?对比了哪些方案?最终选择了哪个方案,具体是怎么实现的?结果(Result): 你的方案带来了什么收益?(比如 QPS 提升了多少,接口 RT 降低了多少,开发效率提升了多少等)技巧: 提前准备 1~2 个这样的“项目亮点故事”,在面试中主动引导面试官进入你擅长的领域。答案可以不标准,但逻辑必须自洽且合理。

来源:墨码行者

相关推荐