跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Javajava算法

Java 核心面试高频题与解析:从基础到分布式架构

Java 面试核心考点覆盖基础特性、集合框架、多线程并发、JVM 内存模型、Spring 容器机制、数据库索引优化及分布式事务解决方案。内容针对校招与社招场景整理,提供关键知识点解析与对比,帮助开发者系统复习并掌握底层原理。

心动瞬间发布于 2026/3/23更新于 2026/5/25 浏览

Java 在企业级开发中占据主导地位,面试考察点往往贯穿基础至架构层。以下梳理了高频考点及核心解析,涵盖基础、集合、并发、JVM、Spring、数据库及分布式领域。

一、Java 基础

1. Java 的三大特性是什么?

封装:隐藏对象的属性和实现细节,仅对外提供访问方式(getter/setter)。 继承:子类继承父类的属性和方法,提高代码复用性。 多态:同一方法在不同对象上有不同行为(方法重写、接口实现)。

2. == 和 equals() 的区别?

==:比较基本数据类型的值,或引用类型的内存地址。 equals():默认比较对象地址(Object 类),但可被重写(如 String 比较内容)。

3. String、StringBuilder、StringBuffer 的区别?
类可变性线程安全适用场景
String❌ 不可变✅ 安全(final)字符串常量
StringBuilder✅ 可变❌ 不安全单线程字符串操作
StringBuffer✅ 可变✅ 安全(synchronized)多线程字符串操作

二、Java 集合

4. ArrayList 和 LinkedList 的区别?
对比项ArrayListLinkedList
底层结构动态数组双向链表
查询效率O(1)(随机访问快)O(n)(需遍历)
增删效率O(n)(需移动元素)O(1)(头尾操作快)
适用场景频繁查询频繁增删
5. HashMap 的底层原理?
  • JDK 1.7:数组 + 链表(哈希冲突时链表存储)。
  • JDK 1.8+:数组 + 链表 + 红黑树(链表长度 ≥8 时转红黑树)。
  • 扩容机制:默认容量 16,负载因子 0.75,扩容时容量翻倍。

三、多线程 & 并发

6. 线程的创建方式有哪些?
  1. 继承 Thread 类(不推荐,单继承限制)。
  2. 实现 Runnable 接口(推荐,可复用)。
  3. 实现 Callable 接口(可返回结果,配合 FutureTask)。
  4. 线程池(ExecutorService)(推荐,管理线程资源)。
7. synchronized 和 ReentrantLock 的区别?
对比项synchronizedReentrantLock
实现方式JVM 层面Java API 层面
锁类型非公平锁可公平/非公平
可中断❌ 不支持✅ 支持(lockInterruptibly)
条件变量❌ 不支持✅ 支持(Condition)

四、JVM

8. JVM 内存模型(运行时数据区)?
  • 方法区(元空间):存储类信息、常量、静态变量。
  • 堆(Heap):存放对象实例(GC 主要区域)。
  • 虚拟机栈:存储方法调用、局部变量表。
  • 本地方法栈:Native 方法调用。
  • 程序计数器:记录线程执行位置。
9. 垃圾回收算法有哪些?
  • 标记 - 清除:简单但内存碎片多。
  • 复制算法:高效(新生代使用),但浪费空间。
  • 标记 - 整理:适合老年代,减少碎片。
  • 分代收集:新生代(复制算法) + 老年代(标记 - 整理)。

五、Spring

10. Spring Bean 的生命周期?
  1. 实例化(new)
  2. 属性赋值(populate)
  3. 初始化(@PostConstruct、InitializingBean)
  4. 使用
  5. 销毁(@PreDestroy、DisposableBean)
11. Spring AOP 的实现原理?
  • JDK 动态代理(基于接口)。
  • CGLIB 动态代理(基于子类,无接口时使用)。
  • 核心:ProxyFactory + MethodInterceptor。

六、数据库 & 缓存

12. MySQL 索引失效的场景?
  • 使用 !=、<>、NOT IN。
  • 对索引列进行运算(如 WHERE age + 1 > 20)。
  • 使用 LIKE '%xx'(左模糊)。
  • 联合索引未遵循最左前缀原则。
13. Redis 持久化方式?
  • RDB(快照):定时全量备份,恢复快但可能丢数据。
  • AOF(日志):记录写命令,数据更安全但文件较大。
  • 混合模式(Redis 4.0+):RDB + AOF 结合。

七、分布式 & 微服务

14. CAP 理论是什么?
  • C(一致性):所有节点数据一致。
  • A(可用性):每次请求都能响应。
  • P(分区容错性):网络分区时仍能运行。
  • 结论:分布式系统只能满足其中两项(如 CP、AP)。
15. 如何解决分布式事务问题?
  • 2PC(两阶段提交):协调者 + 参与者,强一致但阻塞。
  • TCC(Try-Confirm-Cancel):业务补偿,适用于高并发。
  • SAGA:长事务拆分 + 补偿机制。
  • 本地消息表:异步确保最终一致。

综上,上述内容覆盖了 Java 技术栈的核心面试环节,包含基础语法、数据结构、并发编程、虚拟机原理、主流框架及分布式架构方案。掌握这些核心点有助于构建扎实的技术体系。

目录

  1. 一、Java 基础
  2. 1. Java 的三大特性是什么?
  3. 2. == 和 equals() 的区别?
  4. 3. String、StringBuilder、StringBuffer 的区别?
  5. 二、Java 集合
  6. 4. ArrayList 和 LinkedList 的区别?
  7. 5. HashMap 的底层原理?
  8. 三、多线程 & 并发
  9. 6. 线程的创建方式有哪些?
  10. 7. synchronized 和 ReentrantLock 的区别?
  11. 四、JVM
  12. 8. JVM 内存模型(运行时数据区)?
  13. 9. 垃圾回收算法有哪些?
  14. 五、Spring
  15. 10. Spring Bean 的生命周期?
  16. 11. Spring AOP 的实现原理?
  17. 六、数据库 & 缓存
  18. 12. MySQL 索引失效的场景?
  19. 13. Redis 持久化方式?
  20. 七、分布式 & 微服务
  21. 14. CAP 理论是什么?
  22. 15. 如何解决分布式事务问题?
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Stable Diffusion 的三款主流替代方案
  • OpenAI Whisper 语音识别指南:环境搭建与批量转录实践
  • Python 与前端集成:构建全栈应用
  • 企业微信群机器人 Webhook 配置与消息发送指南
  • macOS 微信双开与多开脚本教程(支持 4.X 及以上版本)
  • C++ 实现 Sqrt 开根号算法详解与源码
  • FPGA 核心概念解析:FMC、VITA、UltraScale、MPSoC 及接口标准
  • STL 哈希表原理与模拟实现
  • BFF 架构详解:为前端定制的后端服务
  • Spring Boot 集成 Neo4j 图数据库实战指南
  • Spring Boot 3.5.9 工程视角的稳健演进与核心价值
  • C++ STL string 类从零实现详解
  • 4 个提升开发者效率的 AI 开源工具推荐
  • 利用提示词优化 AI 生成内容以降低 AIGC 检测率
  • C++ 缠论分析插件的技术实现与架构设计
  • AIGC 周报:OpenAI 发布 Shap·E,企业动态与专家观点汇总
  • 6GB 显存部署腾讯混元 Image-2.1 GGUF 版实现 2K 生图
  • Web Search 技能:构建具备实时联网能力的 AI Agent
  • OpenClaw 架构原理与实战部署指南
  • 算法实战:双指针技巧与经典题解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online