☰
沙漏笔记
Java面试题大全
Java高频面试题+标准答案+源码解析+面试技巧,Java面试通关必备
1. Java基础核心(面试开篇必问)
String为什么被设计成不可变的?(好处+源码)
Java中哪些类是不可变类?设计规范是什么?
equals() 和 == 的区别?重写equals必重写hashCode?
8种基本数据类型及包装类,自动装箱/拆箱原理
final、finally、finalize的区别及使用场景
String、StringBuffer、StringBuilder区别及效率排序
Integer缓存池范围,127相等128不等原因
Java异常体系,检查型和非检查型异常区别
2. 集合框架(重中之重,分值最高)
HashMap底层原理(JDK8),JDK7与JDK8区别
HashMap为什么线程不安全?加载因子0.75原因
HashMap哈希冲突解决,红黑树转换条件
ArrayList和LinkedList区别+性能测试+使用场景
ArrayList扩容机制,初始容量及扩容倍数
HashSet底层实现,保证元素唯一的原理
ConcurrentHashMap底层原理,线程安全实现方式
JDK7与JDK8的实现差异对比
HashMap和HashTable的区别,HashTable为何被淘汰
3. 面向对象OOP(Java灵魂考点)
面向对象三大特性:封装、继承、多态(案例)
接口和抽象类的区别,JDK8接口新特性
重载(Overload)和重写(Override)的区别及规则
this和super关键字的区别及使用场景
Java为什么不支持多继承,接口为何可以多实现
单例模式7种写法,线程安全的单例实现
4. 多线程与并发编程(面试分水岭)
Java创建线程的4种方式,优缺点及使用场景
线程的生命周期,6种状态及转换关系
synchronized和Lock的区别,Lock的优势
线程池原理及核心参数,拒绝策略有哪些
死锁产生的条件,如何避免死锁
volatile关键字作用,能否保证原子性
sleep()和wait()的区别,notify和notifyAll
5. JVM虚拟机(大厂必问加分项)
JVM内存结构,堆、栈、方法区作用及存储内容
GC垃圾回收机制,垃圾回收算法及回收器
Java类加载机制,双亲委派模型的作用
堆内存分代,Minor GC和Full GC的区别
内存泄漏与内存溢出,排查方法
6. IO流与NIO(开发必用)
BIO、NIO、AIO的区别及使用场景
字节流和字符流的区别,常用流对象
序列化与反序列化的原理及实现
7. Java8新特性(近3年必考)
Lambda表达式语法及使用场景
Stream流式编程常用方法详解
函数式接口及常用内置接口
Optional类解决空指针异常的用法
8. Java进阶知识点(查漏补缺)
Java反射机制的原理、优缺点及使用场景
注解的自定义及使用,元注解作用
值传递和引用传递,Java到底是哪种
static关键字的作用,静态方法与非静态方法