Java面试宝典(超级详细)

下面给你一份 《Java 面试宝典(超级详细版)》,覆盖 校招 / 社招 / 中高级面试,内容按 “必背知识点 + 面试高频问法 + 一句话答案” 来整理,直接照着背都能用

适合人群:
✅ Java 初/中级开发
✅ 转行 / 校招
✅ 社招 1–5 年
✅ 面试前系统复习


Java 面试宝典(超级详细 · 一篇顶多篇)


一、Java 基础(必问)

1️⃣ Java 特点

面试问法

Java 有哪些特点?

标准答案

  • 面向对象
  • 跨平台(JVM)
  • 自动垃圾回收
  • 丰富的类库
  • 多线程支持

2️⃣ JDK / JRE / JVM 区别

名称作用
JVM运行 Java 字节码
JREJVM + 核心类库
JDKJRE + 开发工具

一句话

JDK 是开发环境,JRE 是运行环境,JVM 是执行引擎。


3️⃣ == 和 equals 的区别

对比==equals
基本类型比值不适用
引用类型比地址比内容(可重写)

📌 面试加分点

重写 equals 必须重写 hashCode


4️⃣ final、finally、finalize 区别

  • final:修饰变量 / 方法 / 类
  • finally:异常块
  • finalize():GC 前调用(已不推荐)

二、集合(高频重点)

1️⃣ List / Set / Map 区别

接口特点
List有序、可重复
Set无序、不重复
Mapkey-value

2️⃣ ArrayList vs LinkedList

对比ArrayListLinkedList
底层数组双向链表
查询
插入删除

3️⃣ HashMap 原理(必考)

核心结构

数组 + 链表 + 红黑树

JDK 1.8 以后

  • 链表长度 ≥ 8 → 红黑树
  • 默认容量 16
  • 扩容 2 倍

面试一句话

HashMap 通过 hash 定位数组下标,冲突时使用链表或红黑树解决。


4️⃣ HashMap 和 ConcurrentHashMap

对比HashMapConcurrentHashMap
线程安全
锁机制CAS + synchronized

三、异常机制

1️⃣ 异常体系

Throwable
 ├── Error
 └── Exception
     ├── RuntimeException
     └── 非运行时异常

2️⃣ throw 和 throws 区别

对比throwthrows
用途抛异常声明异常
位置方法内方法签名

四、多线程(面试核心)

1️⃣ 创建线程的方式

  1. 继承 Thread
  2. 实现 Runnable
  3. Callable + Future
  4. 线程池(推荐)

2️⃣ 线程池参数(必背)

new ThreadPoolExecutor(
    corePoolSize,
    maximumPoolSize,
    keepAliveTime,
    unit,
    workQueue,
    handler
)

拒绝策略

  • AbortPolicy(默认)
  • CallerRunsPolicy
  • DiscardPolicy
  • DiscardOldestPolicy

3️⃣ synchronized 和 Lock

对比synchronizedLock
是否可中断
公平锁
灵活性

4️⃣ volatile 作用

  • 保证可见性
  • 禁止指令重排
  • 不保证原子性

五、JVM(中高级必考)

1️⃣ JVM 内存结构

堆
方法区(元空间)
虚拟机栈
本地方法栈
程序计数器

2️⃣ 垃圾回收算法

  • 标记-清除
  • 复制
  • 标记-整理
  • 分代回收

3️⃣ 常见 GC 收集器

收集器场景
Serial单线程
Parallel高吞吐
CMS低延迟
G1综合最优(推荐)

4️⃣ 内存泄漏 vs 内存溢出

  • 内存泄漏:对象无法回收
  • 内存溢出:内存不够用(OOM)

六、Spring(必问)

1️⃣ IOC 和 AOP

  • IOC:控制反转,对象由容器管理
  • AOP:面向切面,解耦横切逻辑

2️⃣ Spring Bean 生命周期

实例化 → 依赖注入 → 初始化 → 使用 → 销毁

3️⃣ Spring 常用注解

  • @Component
  • @Service
  • @Autowired
  • @Controller
  • @RestController

七、Spring Boot

核心优势

  • 自动配置
  • 内嵌 Tomcat
  • 约定大于配置

启动流程一句话

Spring Boot 启动本质是创建 Spring 容器并完成自动配置。


八、MySQL(必考)

1️⃣ 索引类型

  • 主键索引
  • 唯一索引
  • 普通索引
  • 联合索引

2️⃣ B+ 树索引原因

  • 磁盘 IO 少
  • 范围查询快
  • 高度低

3️⃣ 事务特性(ACID)

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

4️⃣ 隔离级别

级别问题
读未提交脏读
读已提交不可重复读
可重复读幻读
串行化性能低

九、Redis(加分项)

  • 基于内存
  • 单线程
  • 高性能

常用数据类型

  • String
  • Hash
  • List
  • Set
  • ZSet

十、计算机基础(常问)

TCP 三次握手

SYN → SYN+ACK → ACK

HTTP vs HTTPS

  • HTTPS = HTTP + SSL
  • 加密更安全

十一、面试终极技巧

✅ 不会的别硬编
✅ 多用「一句话总结」
✅ 项目问题往自己熟的方向引
✅ 适当画图说明


十二、Java 面试一句话大全(背这个就行)

  • HashMap 是非线程安全的
  • synchronized 是 JVM 层面锁
  • G1 是面向服务端的垃圾回收器
  • Spring Boot 简化了 Spring 配置
  • MySQL InnoDB 支持事务和行锁

结尾

这份 Java 面试宝典 已经覆盖了 80% 以上 Java 面试题

如果你需要👇

  • 📘 Java 面试 PDF 版
  • 📊 Java 面试思维导图
  • 🧠 大厂 Java 高频真题解析
  • 🧪 项目面试话术模板

直接告诉我你的目标(校招 / 社招 / 年限 / 公司),我可以给你 定制版 Java 面试攻略

文章已创建 3572

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部