面试刷题路线

🌟 25 年最新 Java 学习路线


对于准备参加校招或应届同学来说,系统地掌握计算机基础知识和常用开发技术至关重要。

重点应放在扎实的计算机网络、操作系统基础、Java基础、深入理解Java集合与并发、掌握Java虚拟机原理,以及熟悉常用的数据库(MySQL)和缓存(Redis)技术。

此外,了解 Spring 系列框架、微服务架构以及消息队列等内容,将有助于提升综合能力,增强面试竞争力

Java基础

Java基本语法与数据类型

  • 熟悉Java的基本语法结构(变量声明、控制流语句等)
  • 理解基本数据类型与引用数据类型的区别
  • 掌握常用运算符的使用

面向对象编程

  • 理解类与对象的概念及其创建
  • 熟悉继承、封装和多态的实现与应用
  • 掌握抽象类与接口的使用场景

异常处理

  • 理解异常的分类(检查型异常与非检查型异常)
  • 熟悉try-catch-finally结构的使用
  • 掌握自定义异常的创建与抛出

Java内存管理

  • 理解栈与堆的内存分配机制
  • 熟悉基本的垃圾回收概念

常用Java库

  • 掌握常用类库(如java.lang, java.util)的使用
  • 熟悉字符串处理(String, StringBuilder, StringBuffer)

输入输出(I/O)

  • 理解Java的I/O流机制(字节流与字符流)
  • 熟悉文件的读写操作

基础多线程

  • 理解线程的创建与启动方式
  • 掌握基本的线程生命周期管理

基础设计模式

  • 了解常用设计模式(如单例模式、工厂模式)
  • 理解设计模式的适用场景

Java集合

数组与链表

  • 熟悉数组和链表的结构与实现
  • 理解它们在不同场景下的优劣
  • 掌握常见操作的时间复杂度

栈与队列

  • 理解栈和队列的基本概念及应用
  • 熟悉基于数组和链表的实现方式
  • 掌握栈和队列在实际问题中的应用(如括号匹配、任务调度)

Map与Set

  • 熟悉HashMap、TreeMap、LinkedHashMap的实现与区别
  • 了解HashSet、TreeSet、LinkedHashSet的使用场景
  • 掌握ConcurrentHashMap的线程安全特性

集合框架的遍历与操作

  • 熟悉Iterator、ListIterator的使用
  • 掌握增强for循环在集合遍历中的应用
  • 理解并应用常见的集合操作(如排序、过滤、映射)

泛型与集合

  • 理解Java泛型的基本概念与使用
  • 掌握在集合类中使用泛型的技巧
  • 熟悉泛型的类型擦除机制

Java并发

Java内存模型(JMM)

  • 理解JMM的基本概念及其对并发编程的影响
  • 掌握happens-before规则

线程的创建与管理

  • 熟悉Thread类与Runnable接口的使用
  • 掌握Callable与Future的异步任务处理

同步机制

  • 理解synchronized关键字的使用与底层实现
  • 掌握Lock接口及其实现类(如ReentrantLock)的使用

并发工具类

  • 熟悉CountDownLatch、CyclicBarrier、Semaphore等工具类的应用场景与用法
  • 掌握BlockingQueue的使用及其实现类(如ArrayBlockingQueue, LinkedBlockingQueue)

线程池

  • 理解线程池的工作原理与优势
  • 熟悉Executors工厂类的各种线程池创建方法
  • 掌握自定义线程池的配置与优化

并发问题与解决方案

  • 理解并发问题(如死锁、活锁、饥饿)的成因
  • 掌握避免并发问题的设计与编码技巧

原子操作与CAS

  • 理解原子操作的概念
  • 熟悉CAS(Compare and Swap)机制及其在并发中的应用

并发设计模式

  • 了解常用的并发设计模式(如生产者-消费者、读写锁)
  • 掌握并发设计模式的实现与应用

Java虚拟机

JVM内存结构

  • 理解JVM的各个内存区域(堆、方法区、栈、本地方法栈、程序计数器)
  • 掌握各内存区域的功能与特点

垃圾回收机制

  • 熟悉垃圾回收的基本原理与算法(标记-清除、标记-整理、复制、分代收集)
  • 理解不同垃圾收集器(如Serial, Parallel, CMS, G### 的特点与适用场景

类加载机制

  • 理解类加载过程与双亲委派模型
  • 熟悉类加载器的分类与工作原理
  • 掌握自定义类加载器的实现方法

JVM性能调优

  • 了解JVM性能调优的基本思路与方法
  • 熟悉常用的JVM参数设置(如堆大小、垃圾回收器选择)
  • 掌握使用JVM监控工具(如JVisualVM, JConsole)进行性能分析

JVM字节码

  • 理解Java源代码与字节码的关系
  • 熟悉常用的字节码指令
  • 掌握使用反编译工具查看字节码的方法

内存泄漏与优化

  • 识别常见的内存泄漏场景
  • 掌握内存泄漏的排查与修复技巧

MySQL

SQL基本语法

  • 熟悉SELECT、INSERT、UPDATE、DELETE等基本操作
  • 掌握复杂查询(如JOIN、多表查询、子查询)的编写

数据库设计与范式

  • 理解数据库范式(1NF, 2NF, 3NF)的概念与应用
  • 掌握数据库的规范化与反规范化设计

索引优化

  • 熟悉不同类型的索引(如B-Tree, Hash, Full-Text)的实现与应用
  • 理解索引的创建、使用与优化策略
  • 掌握索引覆盖与索引选择性概念

事务与隔离级别

  • 理解事务的ACID特性
  • 熟悉不同的隔离级别(如READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE)及其影响
  • 掌握事务的使用与管理

查询优化

  • 理解查询优化的基本原理
  • 熟悉使用EXPLAIN分析查询性能
  • 掌握优化慢查询的方法与技巧

存储引擎

  • 了解常用存储引擎(如InnoDB, MyISAM)的特点与区别
  • 掌握存储引擎的选择与配置

数据库备份与恢复

  • 熟悉MySQL的备份策略与工具(如mysqldump, xtrabackup)
  • 掌握数据恢复的方法与流程

高可用与分布式

  • 了解MySQL的高可用解决方案(如主从复制、主主复制)
  • 掌握分库分表的基本策略与实现方法

Redis

Redis数据类型

  • 熟悉String, List, Set, Hash, ZSet等数据类型的结构与应用场景
  • 掌握各数据类型的常用命令与操作

Redis持久化机制

  • 熟悉RDB与AOF的工作原理与配置
  • 理解持久化策略的选择与优化
  • 掌握数据恢复的方法

Redis基本命令

  • 掌握常用命令的使用(如GET, SET, HGETALL, LPUSH, ZADD)
  • 理解命令的时间复杂度与性能影响

Redis高可用与集群

  • 了解主从复制与哨兵模式的实现与配置
  • 熟悉Redis Cluster的架构与配置
  • 掌握故障恢复与数据一致性策略

Redis性能优化

  • 理解内存管理与数据压缩技术
  • 掌握合理配置Redis参数以提升性能
  • 了解客户端连接与命令执行的优化方法

Redis安全与监控

  • 了解Redis的安全配置(如密码保护、访问控制)
  • 了解监控工具(如Redis Monitor, Redis-cli)进行性能监控

Redis高级特性

  • 熟悉Lua脚本在Redis中的应用
  • 理解事务与流水线的使用
  • 掌握发布/订阅模式的实现与应用

Spring

Spring核心概念

  • 理解依赖注入(DI)与控制反转(IoC)的基本原理
  • 熟悉Bean的生命周期与作用域

Spring配置方式

  • 掌握基于XML的配置方式
  • 熟悉基于注解(如@Configurable, @Component, @Autowired)的配置
  • 了解基于Java配置类的方式

面向切面编程(AOP)

  • 理解AOP的基本概念与用途
  • 掌握Spring AOP的配置与实现
  • 了解常用的切面(如事务切面、日志切面)

Spring事务管理

  • 理解声明式事务与编程式事务的区别
  • 熟悉事务传播行为与隔离级别的配置
  • 掌握事务的回滚与异常处理机制

Spring模块

  • 掌握Spring MVC的基本架构与请求处理流程
  • 掌握Spring ORM模块与Hibernate/MyBatis的集成
  • 了解Spring Security的基本配置与使用

Spring事件与监听器

  • 理解Spring事件驱动模型
  • 掌握自定义事件与事件监听器的实现

Spring缓存

  • 了解Spring的缓存抽象与配置
  • 掌握常用缓存实现(如EhCache, Redis)的集成与使用

Spring测试

  • 熟悉Spring的测试框架与工具
  • 熟悉编写集成测试与单元测试的方法

SpringBoot

自动配置原理

  • 理解SpringBoot的自动配置机制
  • 熟悉SpringBoot Starter的使用与自定义

SpringBoot启动流程

  • 掌握SpringBoot应用的启动过程
  • 理解SpringApplication类的功能与配置

常用注解与配置

  • 熟悉@SpringBootApplication, @EnableAutoConfiguration等注解的作用
  • 掌握配置文件(application.properties/yml)的使用与管理

SpringBoot与Spring集成

  • 理解SpringBoot对Spring框架的增强与简化
  • 掌握SpringBoot与Spring模块(如Spring MVC, Spring Data)的集成方式

SpringBoot Actuator

  • 了解Actuator的功能与使用
  • 熟悉监控与管理端点的配置

SpringBoot数据访问

  • 掌握SpringBoot与JPA、MyBatis的集成与使用
  • 熟悉数据源的配置与管理

SpringBoot安全

  • 了解SpringBoot中Spring Security的集成与配置
  • 掌握基本的认证与授权机制

SpringBoot测试

  • 熟悉SpringBoot的测试支持与工具
  • 掌握编写SpringBoot应用的单元测试与集成测试

SpringCloud

微服务架构概述

  • 理解微服务的基本概念与优势
  • 熟悉微服务与单体架构的区别

服务注册与发现

  • 了解Eureka的工作原理与配置
  • 掌握Consul、Zookeeper等服务注册中心的使用

服务调用与负载均衡

  • 熟悉Feign的声明式服务调用
  • 掌握Ribbon的客户端负载均衡策略

API网关

  • 理解Zuul、Gateway等API网关的功能与配置
  • 掌握路由、过滤器的使用与定制

断路器与容错

  • 了解Hystrix的断路器模式与配置
  • 掌握服务降级与熔断机制的实现

配置管理

  • 熟悉Spring Cloud Config的配置中心功能
  • 掌握分布式配置的管理与更新

Dubbo

Dubbo基本概念

  • 理解Dubbo的基本原理与核心架构
  • 熟悉Dubbo与Spring的集成方式

服务注册与发现

  • 掌握Dubbo的服务注册中心(如Zookeeper)的配置与使用
  • 理解服务暴露与引用的机制

Dubbo配置

  • 熟悉Dubbo的XML与注解配置方式
  • 掌握常用配置参数的设置(如协议、端口、超时)

服务治理

  • 了解Dubbo的负载均衡策略(如随机、轮询、最少活跃调用数)
  • 掌握服务容错机制(如重试、失败转移)

扩展机制

  • 理解Dubbo的扩展点与SPI机制
  • 熟悉常用扩展(如序列化、协议)的定制与使用

异步与事件驱动

  • 掌握Dubbo的异步调用模式
  • 了解事件驱动架构在Dubbo中的应用

Dubbo与微服务

  • 理解Dubbo在微服务架构中的应用场景
  • 掌握与Spring Cloud等微服务框架的集成与对比

计算机网络

网络基础概念

  • 理解OSI七层模型与TCP/IP协议栈
  • 熟悉常见网络设备(如路由器、交换机)的功能

网络协议详解

  • 掌握TCP与UDP协议的工作原理与区别
  • 理解IP协议、ICMP、ARP等基础协议

HTTP协议

  • 熟悉HTTP请求与响应的结构
  • 掌握HTTP方法(GET, POST, PUT, DELETE)的使用
  • 理解HTTP状态码的含义与应用

域名系统(DNS)

  • 理解DNS的工作流程与解析过程
  • 掌握常见的DNS记录类型(A, CNAME, MX等)

传输层安全

  • 了解SSL/TLS协议的基本原理
  • 掌握HTTPS的配置与实现

网络性能优化

  • 理解带宽、延迟、吞吐量等网络性能指标

网络安全基础

  • 了解常见的网络攻击方式(如DDoS、SQL注入、XSS)
  • 了解基本的防护措施与安全策略

网络编程

  • 熟悉Socket编程的基本概念与实现
  • 掌握基于TCP/UDP的网络应用开发

操作系统

操作系统基础

  • 理解操作系统的基本功能与目标
  • 熟悉操作系统的分类(如批处理系统、分时系统、实时系统)

进程与线程管理

  • 理解进程与线程的概念及区别
  • 掌握进程调度与线程同步机制

内存管理

  • 理解内存分配策略(如分页、分段、虚拟内存)
  • 熟悉内存管理的基本算法(如最先适应算法、最佳适应算法)

文件系统

  • 了解文件系统的基本结构与操作
  • 掌握常见文件系统(如NTFS, ext### 的特点

设备管理

  • 理解设备驱动的基本概念与工作原理
  • 熟悉常见的I/O设备管理策略

操作系统调度算法

  • 理解常见的调度算法(如先来先服务、最短作业优先、轮转)
  • 掌握调度算法的优缺点与应用场景

同步与互斥

  • 理解同步机制(如信号量、互斥锁、条件变量)
  • 掌握解决同步问题的方法与技巧

死锁与避免

  • 理解死锁的四个必要条件
  • 熟悉死锁预防、避免与检测算法
  • 掌握死锁恢复的方法

消息队列

消息队列基础

  • 理解消息队列的基本概念与工作原理
  • 了解消息队列在异步通信中的作用

常用消息队列系统

  • 了解RocketMQ的基本使用与配置
  • 了解Kafka的基本使用与配置
  • 了解RabbitMQ的基本使用与配置

消息传递模式

  • 理解发布/订阅与点对点的消息传递模式
  • 掌握不同模式下的应用场景与实现方法

消息队列配置与管理

  • 熟悉消息队列系统的安装与配置
  • 掌握队列的创建、管理与监控方法

消息持久化与可靠性

  • 了解消息持久化的实现方式
  • 掌握消息确认机制与重试策略

性能优化

  • 理解消息队列的性能瓶颈与优化方法
  • 掌握高吞吐量与低延迟的配置技巧

消息序列化

  • 了解常见的消息序列化格式(如JSON, Protobuf)
  • 掌握序列化与反序列化的实现方法

消息过滤与路由

  • 理解消息过滤的基本原理
  • 掌握基于规则的消息路由策略

Mybatis

Mybatis基本概念

  • 理解Mybatis的工作原理与核心架构
  • 熟悉Mybatis与JDBC的区别与优势

配置与映射

  • 掌握Mybatis的配置文件(如mybatis-config.xml)的编写
  • 熟悉Mapper接口与XML映射文件的关联与使用

动态SQL

  • 理解动态SQL的基本概念与语法
  • 掌握使用<if>, <choose>, <foreach>等标签编写动态查询

参数与结果映射

  • 熟悉参数传递与类型处理
  • 掌握复杂结果集的映射(如一对多、多对多)

缓存机制

  • 了解Mybatis的一级缓存与二级缓存的实现与配置
  • 掌握缓存策略的选择与优化

插件机制

  • 理解Mybatis的插件架构与扩展点
  • 掌握自定义插件的开发与集成

事务管理

  • 了解Mybatis与Spring事务管理的集成
  • 掌握事务的配置与使用方法

性能优化

  • 理解Mybatis的性能瓶颈与优化策略
  • 掌握批量操作与延迟加载的实现方法

分页查询

  • 熟悉使用Mybatis实现高效的分页查询
  • 掌握常用分页插件(如PageHelper)的配置与使用

ElasticSearch(选学)

ElasticSearch基本概念

  • 理解ElasticSearch的核心架构与组成部分
  • 熟悉ElasticSearch的分布式特性与集群管理

索引与映射

  • 掌握创建索引与定义映射的基本方法
  • 理解动态映射与手动映射的区别

文档操作

  • 熟悉文档的CRUD操作(创建、读取、更新、删除)
  • 掌握批量操作与索引优化

查询与搜索

  • 理解ElasticSearch的查询DSL(Domain Specific Language)
  • 掌握常用查询类型(如match, term, range, bool)的使用

聚合分析

  • 了解聚合的基本概念与应用场景
  • 熟悉常见聚合类型(如桶聚合、指标聚合)的实现方法

分词与分析器

  • 理解文本分析与分词器的工作原理
  • 掌握自定义分词器与分析器的配置

性能优化

  • 理解索引优化的策略与方法
  • 掌握查询性能优化技巧(如缓存、过滤)