java基础如何面试
Java基础面试准备
掌握Java基础是面试成功的关键。以下内容涵盖常见面试问题及应对策略,帮助系统化准备。

核心语法与概念
- 数据类型与包装类:理解8种基本数据类型及其对应的包装类,自动装箱与拆箱机制。熟悉
Integer缓存机制(-128到127)。 - String特性:不可变性、字符串常量池、
StringBuilder与StringBuffer区别(线程安全与性能)。 - 面向对象:封装、继承、多态的实现方式。重载(Overload)与重写(Override)的区别,抽象类与接口的应用场景。
集合框架
- List/Set/Map对比:
ArrayList与LinkedList的底层实现(数组 vs 链表),HashMap的哈希冲突解决(链表转红黑树)、扩容机制。ConcurrentHashMap的线程安全实现(JDK1.8的CAS+synchronized)。 - Fail-Fast机制:
Iterator遍历时修改集合会抛出ConcurrentModificationException,可通过CopyOnWriteArrayList避免。
异常处理
- 异常分类:
Error(不可恢复)与Exception(可捕获)。检查异常(IOException)与非检查异常(RuntimeException)的区别。 - 自定义异常:继承
Exception或RuntimeException,重写构造方法传递异常信息。
多线程与并发
- 线程创建方式:继承
Thread类或实现Runnable/Callable接口。线程池的7大参数(核心线程数、队列类型等)。 - 同步机制:
synchronized关键字(修饰方法或代码块)、ReentrantLock的可重入性。volatile保证可见性但非原子性。 - 线程通信:
wait()/notify()需在synchronized块中使用,Condition的await()/signal()更灵活。
JVM基础
- 内存模型:堆(对象实例)、栈(局部变量)、方法区(类信息)。GC算法(标记-清除、分代收集)及垃圾回收器(G1、ZGC)。
- 类加载:双亲委派机制(防止重复加载),过程分为加载、链接、初始化三个阶段。
设计模式
- 单例模式:双重检查锁定(DCL)需加
volatile防止指令重排序,枚举单例更简洁且线程安全。 - 工厂模式:简单工厂(静态方法创建对象)、工厂方法(子类决定实例化类)。
实战代码示例
// 双重检查锁定单例
public class Singleton {
private static volatile Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
面试技巧
- 问题拆解:遇到复杂问题先分解(如HashMap可先讲哈希函数,再谈冲突解决)。
- STAR法则:描述项目经验时突出情境(Situation)、任务(Task)、行动(Action)、结果(Result)。
- 反向提问:准备技术相关问题(如团队使用的Java版本、项目中的性能优化点)。
建议结合《Effective Java》等书籍补充理论,通过LeetCode或牛客网刷题巩固编码能力。






