|
|
@ -0,0 +1,82 @@ |
|
|
|
|
|
一、 Java 核心体系 |
|
|
|
|
|
1. Java 基础 (J2SE) |
|
|
|
|
|
面向对象 (OOP):封装、继承、多态的深层理解;接口(Interface)与抽象类(Abstract Class)的区别。 |
|
|
|
|
|
|
|
|
|
|
|
集合框架: |
|
|
|
|
|
|
|
|
|
|
|
List:ArrayList(动态数组)与 LinkedList(双向链表)。 |
|
|
|
|
|
|
|
|
|
|
|
Set:HashSet(唯一性)、TreeSet(排序)。 |
|
|
|
|
|
|
|
|
|
|
|
Map:HashMap 的底层原理(数组+链表+红黑树)、ConcurrentHashMap(线程安全)。 |
|
|
|
|
|
|
|
|
|
|
|
异常处理:受检异常(Checked)与非受检异常(Unchecked);try-with-resources 自动关闭资源。 |
|
|
|
|
|
|
|
|
|
|
|
泛型与反射:类型擦除、动态代理(JDK 代理 vs CGLIB)。 |
|
|
|
|
|
|
|
|
|
|
|
2. Java 并发编程 (JUC) |
|
|
|
|
|
线程基础:线程状态流转、wait/notify、join、yield。 |
|
|
|
|
|
|
|
|
|
|
|
线程池:ThreadPoolExecutor 的七大参数及拒绝策略。 |
|
|
|
|
|
|
|
|
|
|
|
锁机制:synchronized(偏向锁、轻量级锁、重量级锁)与 ReentrantLock。 |
|
|
|
|
|
|
|
|
|
|
|
并发工具类:CountDownLatch、CyclicBarrier、Semaphore。 |
|
|
|
|
|
|
|
|
|
|
|
JMM (Java 内存模型):原子性、可见性、有序性;volatile 关键字的作用。 |
|
|
|
|
|
|
|
|
|
|
|
3. JVM (虚拟机) |
|
|
|
|
|
内存区域:堆(Heap)、栈(Stack)、方法区、程序计数器。 |
|
|
|
|
|
|
|
|
|
|
|
垃圾回收 (GC): |
|
|
|
|
|
|
|
|
|
|
|
算法:标记-清除、复制、标记-整理。 |
|
|
|
|
|
|
|
|
|
|
|
收集器:CMS、G1、ZGC 的特性。 |
|
|
|
|
|
|
|
|
|
|
|
类加载机制:双亲委派模型及其打破方式。 |
|
|
|
|
|
|
|
|
|
|
|
性能调优:常用指令(jps, jstat, jmap)及内存溢出(OOM)排查。 |
|
|
|
|
|
|
|
|
|
|
|
二、 数据库系统 (以 MySQL 为主) |
|
|
|
|
|
1. 基础与架构 |
|
|
|
|
|
存储引擎:InnoDB(支持事务、行锁)与 MyISAM(性能高、表锁)的区别。 |
|
|
|
|
|
|
|
|
|
|
|
SQL 语言:DML(数据操作)、DDL(定义)、DCL(控制);复杂 Join 操作。 |
|
|
|
|
|
|
|
|
|
|
|
2. 索引 (Index) —— 性能核心 |
|
|
|
|
|
数据结构:为什么使用 B+ Tree 而不是二叉树或 Hash? |
|
|
|
|
|
|
|
|
|
|
|
索引分类:主键索引、唯一索引、组合索引(遵循最左前缀原则)。 |
|
|
|
|
|
|
|
|
|
|
|
聚簇索引 vs 非聚簇索引:回表查询的概念。 |
|
|
|
|
|
|
|
|
|
|
|
索引失效场景:如使用 OR、模糊查询 % 在前、类型隐式转换等。 |
|
|
|
|
|
|
|
|
|
|
|
3. 事务 (Transaction) |
|
|
|
|
|
ACID 特性:原子性、一致性、隔离性、持久性。 |
|
|
|
|
|
|
|
|
|
|
|
隔离级别: |
|
|
|
|
|
|
|
|
|
|
|
读未提交(脏读) |
|
|
|
|
|
|
|
|
|
|
|
读已提交(不可重复读) |
|
|
|
|
|
|
|
|
|
|
|
可重复读(MySQL 默认,解决幻读) |
|
|
|
|
|
|
|
|
|
|
|
串行化 |
|
|
|
|
|
|
|
|
|
|
|
MVCC (多版本并发控制):如何通过 ReadView 和 Undo Log 实现非阻塞读。 |
|
|
|
|
|
|
|
|
|
|
|
三、 Java 与数据库的连接 (持久层) |
|
|
|
|
|
JDBC:原始连接步骤、防止 SQL 注入(使用 PreparedStatement)。 |
|
|
|
|
|
|
|
|
|
|
|
连接池:Druid、HikariCP 的配置与优势(减少连接创建开销)。 |
|
|
|
|
|
|
|
|
|
|
|
MyBatis/MyBatis-Plus: |
|
|
|
|
|
|
|
|
|
|
|
动态 SQL 标签。 |
|
|
|
|
|
|
|
|
|
|
|
一、二级缓存机制。 |
|
|
|
|
|
|
|
|
|
|
|
延迟加载原理。 |