Java 面试八股文(必备)
一、Java 基础(必问)
1. Java 的特点有哪些?
答:Java 是一门面向对象的编程语言,具有以下特点:1)跨平台:一次编写,到处运行(JVM)2)面向对象:封装、继承、多态3)自动内存管理:垃圾回收机制(GC)4)安全性强:沙箱机制、字节码验证5)多线程支持:线程机制、并发包6)丰富的标准库:集合、IO、网络、并发等
2. JDK、JRE、JVM 区别?
答:
- JVM:Java 虚拟机,负责运行 Java 字节码
- JRE:Java 运行环境(包含 JVM + 核心类库)
- JDK:Java 开发工具包(包含 JRE + 编译器 javac 等开发工具)
3. 面向对象三大特性?
答:1)封装:隐藏实现细节,提供接口2)继承:子类继承父类属性与方法3)多态:同一方法不同实现(运行时绑定)
我总结的java面试八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd
二、集合框架(高频)
1. List、Set、Map 区别?
答:
- List:有序可重复(ArrayList、LinkedList)
- Set:无序不可重复(HashSet、TreeSet)
- Map:键值对映射(HashMap、TreeMap)
2. ArrayList 与 LinkedList 区别?
答:
- ArrayList:基于数组,查询快,插入删除慢
- LinkedList:基于双向链表,插入删除快,查询慢
- 总结:读多写少用 ArrayList写多读少用 LinkedList
3. HashMap 原理?
答:HashMap 基于 数组 + 链表/红黑树实现:1)通过 key 的 hashCode 计算 hash 值2)根据 hash 值定位数组下标3)若发生冲突,则用链表或红黑树存储4)当链表长度 > 8 且数组长度 > 64 时,链表转红黑树
三、并发(必问)
1. synchronized 与 Lock 区别?
答:
- synchronized:内置锁,JVM 层面实现,简单易用
- Lock:显式锁(ReentrantLock),可响应中断、可公平锁、可尝试加锁
- 总结:业务简单用 synchronized业务复杂用 Lock
2. volatile 关键字作用?
答:1)保证 可见性:写入的值会立即刷新到主内存2)禁止指令重排(部分情况下)3)不保证原子性(需要结合锁或 CAS)
3. Java 内存模型(JMM)?
答:Java 内存模型由 主内存 + 工作内存 构成:
- 变量存放在主内存
- 线程操作变量时先拷贝到工作内存
- 修改后再同步回主内存 核心问题:可见性、原子性、有序性
四、JVM(面试核心)
1. JVM 内存结构?
答:
- 方法区:存放类信息、常量、静态变量
- 堆:对象实例存放地(GC 主要区域)
- 栈:方法调用、局部变量
- 本地方法栈:Native 方法调用
- 程序计数器:记录线程执行位置
2. 垃圾回收算法?
答:
- 标记-清除
- 复制算法(新生代)
- 标记-整理(老年代)
3. 常见垃圾回收器?
答:
- Serial:单线程,适合小内存
- Parallel:多线程,吞吐量高
- CMS:低停顿
- G1:兼顾吞吐量与停顿(推荐)
五、数据库(必问)
1. SQL 索引的类型?
答:
- B+Tree 索引:最常用
- Hash 索引:等值查询快
- 全文索引:文本搜索
- 联合索引:多个字段组合
2. 事务的四大特性(ACID)?
答:
- Atomicity(原子性)
- Consistency(一致性)
- Isolation(隔离性)
- Durability(持久性)
3. 事务隔离级别?
答:
- READ UNCOMMITTED(读未提交)
- READ COMMITTED(读已提交)
- REPEATABLE READ(可重复读)
- SERIALIZABLE(串行化)
六、微服务与框架(加分项)
1. Spring 的核心是什么?
答:Spring 的核心是 IOC(控制反转) 和 AOP(面向切面编程)
- IOC:容器负责创建对象、管理依赖
- AOP:横切关注点(事务、日志、权限)
2. 什么是依赖注入?
答:依赖注入是把对象的依赖由容器注入,而不是对象自己创建。
七、面试“答题技巧”八股总结
1)结构化回答
- 先给结论
- 再解释原因
- 最后举例或补充
2)遇到不会的问题
- 不要慌
- 先说出你知道的相关概念
- 再说明你会怎么查或怎么验证
3)面试官喜欢听的表达
- “我理解的是……”
- “通常我们会这样处理……”
- “在项目中我遇到过类似情况……”
Java 面试八股文的本质不是死记硬背,而是 把常见知识点形成可复用的回答结构。只要掌握“结论—原理—应用—场景”的答题模板,你就能在面试中稳住节奏。
查看8道真题和解析