基础题重在实战与原理结合:需手写可运行代码、解释设计逻辑(如hashmap树化阈值8基于泊松分布)、辨析行为差异(== vs equals、装箱缓存范围)、用项目场景反推基础(如订单系统用bigdecimal防浮点误差),杜绝纯背诵。

直接上手练,别只看不写。基础题不是考你背得熟不熟,而是看你能不能在压力下快速理清逻辑、写出可运行的代码、解释清楚背后的原理。
紧扣高频真题,按模块分层刷
别从网上随便搜题海战术。优先覆盖这几类必考题型:
-
语法辨析题:比如
==和equals()在String、Integer、自定义对象下的行为差异;final修饰类/方法/变量时各自的影响;自动装箱缓存范围(-128~127)的实际表现。 - OOP设计题:给一个业务场景(如“支付方式有微信、支付宝、银行卡”),让你用接口+多态实现;对比抽象类和接口在Java 8之后的异同,并说明何时选哪个。
-
集合源码级题:手写
HashMap扩容伪代码;解释为什么ConcurrentHashMap在JDK 8中不用分段锁而改用synchronized锁头节点;ArrayList插入末尾是O(1),但在中间插入为什么是O(n)? -
内存与异常题:画出JVM运行时数据区简图,标出
new Object()、static int x、int y分别存在哪;try-catch-finally中都有return时最终返回谁?
动手写代码,白板/IDE/终端三合一
面试常要求手写或口述代码,光心里想清楚不够:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 在IDE里写完立刻运行验证,比如测试
String s1 = "abc"; String s2 = "ab" + "c"; s1 == s2是否为true; - 用白板或纸笔默写关键结构,如
HashMap的put流程(hash→寻址→冲突处理→扩容判断); - 在终端敲命令验证JVM参数效果,例如用
java -Xmx100m -Xms100m跑一个无限创建对象的程序,观察OOM发生位置。
讲清楚“为什么”,不只答“是什么”
面试官真正想听的是你的思考链路。比如被问到“ArrayList线程不安全,怎么改?”
- 错误答法:“用
Collections.synchronizedList”——只说了方案,没讲代价; - 合格答法:“可以用
Collections.synchronizedList,但所有方法都加了synchronized,读操作也被阻塞,吞吐下降;更优解是根据场景选CopyOnWriteArrayList(适合读多写少)或Vector(历史遗留,不推荐)”; - 加分答法:再补一句“其实根本问题是迭代时并发修改,所以Spring等框架常用不可变集合或防御性拷贝来规避”。
用项目反推基础,避免知识碎片化
把基础知识点嵌入你做过的项目里去复盘:
- 做过订单系统?想想
BigDecimal为什么用于金额计算,float哪里会出错; - 调过接口超时?回顾
Future和CompletableFuture的区别,为什么后者支持异步编排; - 优化过慢SQL?顺带梳理
PreparedStatement预编译机制和防SQL注入原理。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










