Java面试题更新 2026-08-03

在小米后端一面的面试中,围绕Java技术栈会考察哪些基础问题,且难度被标记为简单。请描述你在这次面试中可能遇到的知识点,并总体评价它们的难度分布。

考察说明

考察面试者对Java后端基础知识的掌握程度以及面试准备情况

回答思路

  1. 【回答框架 1】Java基础方面,重点考察集合框架的底层实现差异,例如HashMap的哈希冲突处理机制、ArrayList与LinkedList在随机访问和插入删除时的复杂度差异,以及并发容器ConcurrentHashMap在Java 8后采用CAS与synchronized锁分段实现的高并发读写特性。
  2. 【回答框架 2】JVM相关知识是常见考点,需要说明内存区域的划分,包括堆、栈、方法区,以及垃圾回收算法如标记-清除、标记-复制和分代收集策略,尤其是CMS和G1收集器的适用场景和优劣。
  3. 【回答框架 3】并发编程层面,需掌握synchronized与ReentrantLock的锁机制差异、volatile的可见性与禁止重排原理,以及线程池的核心参数含义,例如corePoolSize、maximumPoolSize和任务队列的协作关系。
  4. 【回答框架 4】Spring框架方面,需要理解IOC容器管理Bean的生命周期和依赖注入方式,以及AOP如何通过动态代理实现横切逻辑,同时能够说明事务传播行为在业务中的应用。
  5. 【回答框架 5】由于难度为简单,题目通常聚焦于上述基础概念的定义和简单实现,不会深入底层源码,注重考察候选人的语言组织和逻辑清晰度。
  6. 【关键点 1】必须能够准确说出HashMap在JDK 8后引入红黑树优化链表,降低查询复杂度至O(log n)。
  7. 【关键点 2】需要明确定义线程池的核心参数,并解释任务提交时的拒绝策略以及资源回收条件。
  8. 【关键点 3】Spring的IOC本质是控制反转,通过反射创建对象并注入依赖,AOP则基于动态代理(JDK或CGLIB)实现。
  9. 【关键点 4】ConcurrentHashMap采用CAS配合synchronized锁住桶节点来保证线程安全,读操作无锁化。
  10. 【关键点 5】JVM垃圾回收分代假说,新生代用复制算法,老年代用标记-整理或标记-清除,G1适合大堆低延迟场景。
  11. 【易错点 1】不要混淆HashMap和Hashtable的线程安全差异,前者非线程安全但效率高,后者全方法加锁但并发性能差。
  12. 【易错点 2】在描述线程池时不能忽略任务队列的饱和策略,例如AbortPolicy默认抛出异常,而CallerRunsPolicy由调用线程执行。
  13. 【易错点 3】说明Spring AOP时需区分是JDK动态代理(必须基于接口)还是CGLIB代理(基于继承),否则实例化方式会配置错误。