跳转至

一、Java 基础与语法

本分类覆盖 Java 语言层面的核心知识点:数据类型、字符串、集合源码、泛型、对象方法约定、类加载、JMM、关键字、反射、动态代理、异常体系与新特性。

题目列表

# 题目 核心考点
1 如何判断一个 List 是否有序? List 契约、RandomAccess
2 JDK 哪些类底层使用位运算? 位运算在 JDK 中的应用
3 方法重载的底层原理? 静态分派、invokevirtual
4 能否自定义类名为 java.lang.System / String? 启动类加载器、类加载委托
5 java.lang.Void 和 void 的区别? 关键字、占位类型
6 为什么要重写 hashCode 和 equals? 约定、Hash 集合
7 Class.forName 和 ClassLoader 的区别? 初始化 vs 加载
8 Java 泛型相关面试题 类型擦除、通配符
9 ConcurrentHashMap / HashMap / Hashtable 区别 线程安全、并发度
10 从源码看 Hashtable 与 HashMap 区别 源码细节
11 HashMap 源码相关问题 扩容、树化、扰动
12 RandomAccess 空接口的作用 标记接口、遍历优化
13 Java 内存模型是什么? JMM、happens-before
14 Java 12 有哪些新特性? switch 表达式、Shenandoah
15 计算机存储数字和字符的原理? 补码、编码
16 Lambda 表达式线上踩坑案例 闭包、变量捕获
17 基本数据类型及字节数 四类八种、包装类
18 String 能被继承吗 final、不可变
19 String / StringBuffer / StringBuilder 区别 可变、线程安全
20 ArrayList 和 LinkedList 区别 数组 vs 链表
21 类实例化顺序 静态块、构造函数、继承
22 用过哪些 Map 类?HashMap 并发下用什么 Map 全景、ConcurrentHashMap
23 Java8 ConcurrentHashMap 为什么放弃分段锁 CAS、synchronized 桶锁
24 有序的 Map 实现类 LinkedHashMap、TreeMap
25 抽象类和接口的区别 多实现、多继承
26 继承和聚合的区别 is-a vs has-a
27 IO 模型与 NIO/BIO/AIO/Reactor 五种 IO、Reactor 模型
28 反射的原理与三种创建方式 Class、Method、Constructor
29 动态代理的几种实现方式 JDK、CGLIB、Javassist
30 JDK 动态代理与 CGLIB 的区别 接口 vs 继承
31 final 的用途 类、方法、变量
32 三种单例模式实现 DCL、静态内部类、枚举
33 父类自动实现 equals/hashCode 的问题 里氏替换、对称性
34 public/private/protected/default 作用 封装、最小知识
35 深拷贝和浅拷贝区别 引用复制、递归复制
36 数组和链表的增删查复杂度 O(1) vs O(n)
37 Error 和 Exception 区别 受检 vs 非受检
38 5 个运行时异常 NPE、IAE、ISE 等
39 HashSet 内部工作原理 内部就是 HashMap
40 序列化与反序列化 Serializable、transient
41 Java 8 新特性 Lambda、Stream、Optional