☕ Java面试速查卡片
2026版 · 一页纸覆盖7大核心领域 · 面试前5分钟过一遍 · 可打印
🔤 Java基础
== 比地址,equals() 比内容;重写equals必须重写hashCode
- String不可变(final类+final byte[]),线程安全
- ArrayList扩容1.5倍,HashMap默认16→负载0.75→树化阈值8
- 异常:checked需try-catch,unchecked(RuntimeException)不用
- 泛型擦除:编译后<T>变Object,运行时不保留类型
- 反射:
Class.forName()获取类→getDeclaredMethod()调用
⚡ JVM
- 内存:堆(对象) + 栈(局部变量/帧) + 方法区(类信息/常量池) + 程序计数器
- GC算法:标记-清除(碎片) / 复制(年轻代) / 标记-整理(老年代)
- CMS:并发标记清除,低停顿但碎片化;G1:Region分区,可预测停顿
- 类加载:双亲委派(Bootstrap→Extension→Application),防止重复加载+核心类篡改
- OOM排查:
jmap -dump导出 → MAT/JProfiler分析
🧵 并发编程
- volatile:保证可见性+禁止重排序,不保证原子性
- synchronized锁升级:偏向锁→轻量锁(CAS)→重量锁(OS mutex)
- AQS:CLH队列+state变量,ReentrantLock/Semaphore/CountDownLatch都基于它
- 线程池:corePool→队列→maxPool→拒绝策略(CallerRuns/Abort/Discard)
- ConcurrentHashMap JDK8:CAS+synchronized锁链表头节点
🌱 Spring
- IoC:容器管理Bean生命周期,@Autowired注入(byType→byName)
- AOP:动态代理(JDK接口代理 / CGLIB子类代理),@Transactional就是AOP实现的
- Bean生命周期:实例化→注入→Aware→BeanPostProcessor→init→使用→destroy
- @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan
- 循环依赖:三级缓存解决(singletonFactories→earlySingletonObjects→singletonObjects)
🗄️ MySQL
- InnoDB索引:B+树,聚簇索引(主键)叶子存数据,非聚簇索引叶子存主键
- 最左前缀:联合索引(a,b,c)→where a=1能用,where b=2不能用
- EXPLAIN关键列:type(eq_ref>ref>range>ALL)、key、rows、Extra
- 事务隔离:RU脏读→RC不可重复读→RR幻读(InnoDB用间隙锁解决)→Serializable
- MVCC:undo log版本链+ReadView快照,RR级别第一次查询生成ReadView
- 慢SQL优化:开慢日志→EXPLAIN→加索引/改SQL/分库分表
🔴 Redis
- 5种类型:String/Hash/List/Set/ZSet
- 穿透:布隆过滤器+空缓存;击穿:互斥锁+逻辑过期;雪崩:TTL随机化+多级缓存
- 持久化:RDB(快照)恢复快丢数据 / AOF(追加命令)恢复慢更安全 / 混合模式
- 分布式锁:
SET lock:xxx uuid NX EX 30 + Lua脚本原子释放
- 集群:主从(读写分离)→哨兵(自动故障转移)→Cluster(16384槽分片)
- 淘汰策略:LRU/LFU/TTL/随机;缓存一致性:先更DB后删缓存+延迟双删
🌐 网络+Linux
- TCP三次握手(SYN→SYN+ACK→ACK);四次挥手(FIN→ACK→FIN→ACK)
- HTTPS:非对称加密交换密钥→对称加密传输数据;证书防中间人
- HTTP状态码:200成功/301永久重定向/400参数错/401未认证/403禁止/404未找到/500服务器错/502网关错/503不可用
- CPU飙高排查:
top -Hp PID找线程→jstack查堆栈
- 内存泄漏:
jmap -histo看对象→jmap -dump导出→MAT分析
- 磁盘满:
df -h查空间→du -sh /*找大目录→清理日志
🤖 微服务+AI(2026必考)
- Nacos:服务注册发现+配置中心;Sentinel:限流(QPS/线程数)+熔断降级
- RocketMQ:削峰填谷,事务消息保证最终一致性
- 分布式事务:Seata AT(自动回滚)/TCC(手动confirm+cancel)/消息表+定时对账
- CAP:最多同时满足2个;AP(Eureka/Nacos) vs CP(Zookeeper)
- Spring AI:
ChatClient调大模型 + EmbeddingModel做向量化 + VectorStore做RAG
- RAG流程:文档分块→Embedding→向量库→相似检索→拼接Prompt→LLM生成
💡 使用技巧:面试前5分钟速扫全文 → 哪块不熟点下面链接看详细题库 → 可打印贴在桌上当小抄。全部免费。