Java八股文:核心知识点梳理
一、Java基础
1. Java基本数据类型
- 8种基本类型:
- 整型:byte(1), short(2), int(4), long(8)
- 浮点型:float(4), double(8)
- 字符型:char(2)
- 布尔型:boolean(1)
- 包装类:Byte, Short, Integer, Long, Float, Double, Character, Boolean
- 自动装箱与拆箱
2. String相关
- String不可变性
- String, StringBuilder, StringBuffer区别
- String:不可变,线程安全
- StringBuilder:可变,非线程安全
- StringBuffer:可变,线程安全(synchronized)
- 字符串常量池
- intern()方法作用
3. 面向对象特性
- 封装、继承、多态
- 抽象类与接口区别
- 抽象类:可以有构造方法,可以有普通成员变量
- 接口:JDK8后可以有默认方法,JDK9可以有私有方法
- 重载(Overload)与重写(Override)区别
二、Java集合框架
1. Collection体系
- List:有序可重复
- ArrayList:数组实现,查询快,增删慢
- LinkedList:链表实现,增删快,查询慢
- Vector:线程安全版ArrayList
- Set:无序不可重复
- HashSet:基于HashMap
- LinkedHashSet:保持插入顺序
- TreeSet:红黑树实现,有序
- Queue
- PriorityQueue:优先队列
- ArrayDeque:双端队列
2. Map体系
- HashMap:数组+链表+红黑树(JDK8)
- 扩容机制:默认16,负载因子0.75,2倍扩容
- 解决哈希冲突:拉链法
- 线程不安全
- LinkedHashMap:保持插入/访问顺序
- TreeMap:红黑树实现,按键排序
- ConcurrentHashMap:线程安全
- JDK7:分段锁
- JDK8:CAS+synchronized
三、JVM相关
1. 内存区域
- 程序计数器
- 虚拟机栈(Stack)
- 本地方法栈
- 堆(Heap)
- 方法区(元空间)
2. 垃圾回收
- 判断对象可回收:
- 引用计数法(循环引用问题)
- 可达性分析法(GC Roots)
- 垃圾回收算法:
- 标记-清除
- 标记-整理
- 复制算法
- 分代收集
- 垃圾收集器:
- Serial/Serial Old
- ParNew
- Parallel Scavenge/Parallel Old
- CMS
- G1
- ZGC
3. 类加载机制
- 加载过程:
- 加载
- 验证
- 准备
- 解析
- 初始化
- 类加载器:
- Bootstrap ClassLoader
- Extension ClassLoader
- Application ClassLoader
- 自定义ClassLoader
- 双亲委派模型
四、多线程与并发
1. 线程基础
- 创建线程方式:
- 继承Thread类
- 实现Runnable接口
- 实现Callable接口
- 线程状态:
- NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED
2. 线程安全
- synchronized
- 修饰实例方法
- 修饰静态方法
- 同步代码块
- volatile
- 可见性
- 禁止指令重排序
- CAS与原子类
- ThreadLocal
3. JUC包
- Lock体系:ReentrantLock, ReadWriteLock
- 并发集合:ConcurrentHashMap, CopyOnWriteArrayList
- 线程池:
- ThreadPoolExecutor参数
- 执行流程
- 拒绝策略
- 同步工具:CountDownLatch, CyclicBarrier, Semaphore
五、IO与NIO
1. BIO/NIO/AIO
- BIO:同步阻塞
- NIO:同步非阻塞(Channel, Buffer, Selector)
- AIO:异步非阻塞
2. 网络编程
- Socket编程
- NIO实现多路复用
- Netty框架特点
六、设计模式
1. 创建型模式
- 单例模式
- 工厂模式
- 建造者模式
2. 结构型模式
- 适配器模式
- 代理模式
- 装饰器模式
3. 行为型模式
- 观察者模式
- 策略模式
- 模板方法模式
七、Spring框架
1. Spring核心
- IOC/DI原理
- AOP实现原理
- Bean生命周期
- 事务管理
2. Spring MVC
- 请求处理流程
- 常用注解
3. Spring Boot
- 自动配置原理
- 启动流程
- 常用starter
八、数据库与ORM
1. MySQL
- 索引原理(B+树)
- 事务特性(ACID)
- 隔离级别
- 锁机制
2. MyBatis
- #{}与${}区别
- 一级缓存与二级缓存
- 动态SQL
九、分布式与微服务
1. 分布式基础
- CAP理论
- BASE理论
- 一致性算法:Paxos, Raft
2. 微服务组件
- 服务注册发现:Eureka, Nacos
- 服务调用:Feign, Ribbon
- 熔断限流:Hystrix, Sentinel
- 网关:Zuul, Gateway
- 配置中心:Config, Nacos
3. 分布式事务
- 2PC
- 3PC
- TCC
- 本地消息表
- Seata框架
十、消息队列
1. Kafka
- 架构设计
- 消息存储
- 高可用机制
2. RabbitMQ
- 交换机类型
- 消息确认机制
3. RocketMQ
- 消息存储
- 事务消息
十一、Redis
1. 数据类型
- String, Hash, List, Set, ZSet
- 特殊数据结构:BitMap, HyperLogLog
2. 持久化
- RDB
- AOF
3. 高可用
- 主从复制
- 哨兵模式
- Cluster集群
4. 应用场景
- 缓存
- 分布式锁
- 限流
十二、性能优化
1. JVM调优
- 内存分配
- GC日志分析
- 常用参数
2. SQL优化
- 执行计划
- 索引优化
- 分库分表
3. 代码优化
- 减少对象创建
- 合理使用集合
- 并发控制
以上是Java面试中常见的技术点大概梳理,实际面试中可能会根据岗位需求有所侧重。
需要这份Java面试题(2025版)文档的小伙伴,观住+留“求资料”免费领取!