--- title: "02-面试刷题路线" aliases: - "面试刷题路线" created: 2025-12-02 --- # 面试刷题路线 [🌟 25 年最新 Java 学习路线](https://www.codefather.cn/course/1789189862986850306/section/1789190431398928386?type=) --- 对于准备参加校招或应届同学来说,系统地掌握计算机基础知识和常用开发技术至关重要。 重点应放在扎实的计算机网络、操作系统基础、Java基础、深入理解Java集合与并发、掌握Java虚拟机原理,以及熟悉常用的数据库(MySQL)和缓存(Redis)技术。 此外,了解 Spring 系列框架、微服务架构以及消息队列等内容,将有助于提升综合能力,**增强面试竞争力**。 ## [Java基础](https://www.mianshiya.com/bank/1787463103423897602) ### **Java基本语法与数据类型**: - 熟悉Java的基本语法结构(变量声明、控制流语句等) - 理解基本数据类型与引用数据类型的区别 - 掌握常用运算符的使用 ### **面向对象编程**: - 理解类与对象的概念及其创建 - 熟悉继承、封装和多态的实现与应用 - 掌握抽象类与接口的使用场景 ### **异常处理**: - 理解异常的分类(检查型异常与非检查型异常) - 熟悉try-catch-finally结构的使用 - 掌握自定义异常的创建与抛出 ### **Java内存管理**: - 理解栈与堆的内存分配机制 - 熟悉基本的垃圾回收概念 ### **常用Java库**: - 掌握常用类库(如java.lang, java.util)的使用 - 熟悉字符串处理(String, StringBuilder, StringBuffer) ### **输入输出(I/O)**: - 理解Java的I/O流机制(字节流与字符流) - 熟悉文件的读写操作 ### **基础多线程**: - 理解线程的创建与启动方式 - 掌握基本的线程生命周期管理 ### **基础设计模式**: - 了解常用设计模式(如单例模式、工厂模式) - 理解设计模式的适用场景 ## [Java集合](https://www.mianshiya.com/bank/1788408712975282177) ### **数组与链表**: - 熟悉数组和链表的结构与实现 - 理解它们在不同场景下的优劣 - 掌握常见操作的时间复杂度 ### **栈与队列**: - 理解栈和队列的基本概念及应用 - 熟悉基于数组和链表的实现方式 - 掌握栈和队列在实际问题中的应用(如括号匹配、任务调度) ### **Map与Set**: - 熟悉HashMap、TreeMap、LinkedHashMap的实现与区别 - 了解HashSet、TreeSet、LinkedHashSet的使用场景 - 掌握ConcurrentHashMap的线程安全特性 ### **集合框架的遍历与操作**: - 熟悉Iterator、ListIterator的使用 - 掌握增强for循环在集合遍历中的应用 - 理解并应用常见的集合操作(如排序、过滤、映射) ### **泛型与集合**: - 理解Java泛型的基本概念与使用 - 掌握在集合类中使用泛型的技巧 - 熟悉泛型的类型擦除机制 ## [Java并发](https://www.mianshiya.com/bank/1789249312885223425) ### **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虚拟机](https://www.mianshiya.com/bank/1789931432793948162) ### **JVM内存结构**: - 理解JVM的各个内存区域(堆、方法区、栈、本地方法栈、程序计数器) - 掌握各内存区域的功能与特点 ### **垃圾回收机制**: - 熟悉垃圾回收的基本原理与算法(标记-清除、标记-整理、复制、分代收集) - 理解不同垃圾收集器(如Serial, Parallel, CMS, G### 的特点与适用场景 ### **类加载机制**: - 理解类加载过程与双亲委派模型 - 熟悉类加载器的分类与工作原理 - 掌握自定义类加载器的实现方法 ### **JVM性能调优**: - 了解JVM性能调优的基本思路与方法 - 熟悉常用的JVM参数设置(如堆大小、垃圾回收器选择) - 掌握使用JVM监控工具(如JVisualVM, JConsole)进行性能分析 ### **JVM字节码**: - 理解Java源代码与字节码的关系 - 熟悉常用的字节码指令 - 掌握使用反编译工具查看字节码的方法 ### **内存泄漏与优化**: - 识别常见的内存泄漏场景 - 掌握内存泄漏的排查与修复技巧 ## [MySQL](https://www.mianshiya.com/bank/1791003439968264194) ### **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](https://www.mianshiya.com/bank/1791375592078610434) ### **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](https://www.mianshiya.com/bank/1790683494127804418) ### **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](https://www.mianshiya.com/bank/1797452903309508610) ### **自动配置原理**: - 理解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](https://www.mianshiya.com/bank/1797453053310402561) ### **微服务架构概述**: - 理解微服务的基本概念与优势 - 熟悉微服务与单体架构的区别 ### **服务注册与发现**: - 了解Eureka的工作原理与配置 - 掌握Consul、Zookeeper等服务注册中心的使用 ### **服务调用与负载均衡**: - 熟悉Feign的声明式服务调用 - 掌握Ribbon的客户端负载均衡策略 ### **API网关**: - 理解Zuul、Gateway等API网关的功能与配置 - 掌握路由、过滤器的使用与定制 ### **断路器与容错**: - 了解Hystrix的断路器模式与配置 - 掌握服务降级与熔断机制的实现 ### **配置管理**: - 熟悉Spring Cloud Config的配置中心功能 - 掌握分布式配置的管理与更新 ## [Dubbo](https://www.mianshiya.com/bank/1801127500832907266) ### **Dubbo基本概念**: - 理解Dubbo的基本原理与核心架构 - 熟悉Dubbo与Spring的集成方式 ### **服务注册与发现**: - 掌握Dubbo的服务注册中心(如Zookeeper)的配置与使用 - 理解服务暴露与引用的机制 ### **Dubbo配置**: - 熟悉Dubbo的XML与注解配置方式 - 掌握常用配置参数的设置(如协议、端口、超时) ### **服务治理**: - 了解Dubbo的负载均衡策略(如随机、轮询、最少活跃调用数) - 掌握服务容错机制(如重试、失败转移) ### **扩展机制**: - 理解Dubbo的扩展点与SPI机制 - 熟悉常用扩展(如序列化、协议)的定制与使用 ### **异步与事件驱动**: - 掌握Dubbo的异步调用模式 - 了解事件驱动架构在Dubbo中的应用 ### **Dubbo与微服务**: - 理解Dubbo在微服务架构中的应用场景 - 掌握与Spring Cloud等微服务框架的集成与对比 ## [计算机网络](https://www.mianshiya.com/bank/1790948499480616961) ### **网络基础概念**: - 理解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的网络应用开发 ## [操作系统](https://www.mianshiya.com/bank/1790684063773007874) ### **操作系统基础**: - 理解操作系统的基本功能与目标 - 熟悉操作系统的分类(如批处理系统、分时系统、实时系统) ### **进程与线程管理**: - 理解进程与线程的概念及区别 - 掌握进程调度与线程同步机制 ### **内存管理**: - 理解内存分配策略(如分页、分段、虚拟内存) - 熟悉内存管理的基本算法(如最先适应算法、最佳适应算法) ### **文件系统**: - 了解文件系统的基本结构与操作 - 掌握常见文件系统(如NTFS, ext### 的特点 ### **设备管理**: - 理解设备驱动的基本概念与工作原理 - 熟悉常见的I/O设备管理策略 ### **操作系统调度算法**: - 理解常见的调度算法(如先来先服务、最短作业优先、轮转) - 掌握调度算法的优缺点与应用场景 ### **同步与互斥**: - 理解同步机制(如信号量、互斥锁、条件变量) - 掌握解决同步问题的方法与技巧 ### **死锁与避免**: - 理解死锁的四个必要条件 - 熟悉死锁预防、避免与检测算法 - 掌握死锁恢复的方法 ## [消息队列](https://www.mianshiya.com/bank/1801255316257841153) ### **消息队列基础**: - 理解消息队列的基本概念与工作原理 - 了解消息队列在异步通信中的作用 ### **常用消息队列系统**: - 了解RocketMQ的基本使用与配置 - 了解Kafka的基本使用与配置 - 了解RabbitMQ的基本使用与配置 ### **消息传递模式**: - 理解发布/订阅与点对点的消息传递模式 - 掌握不同模式下的应用场景与实现方法 ### **消息队列配置与管理**: - 熟悉消息队列系统的安装与配置 - 掌握队列的创建、管理与监控方法 ### **消息持久化与可靠性**: - 了解消息持久化的实现方式 - 掌握消息确认机制与重试策略 ### **性能优化**: - 理解消息队列的性能瓶颈与优化方法 - 掌握高吞吐量与低延迟的配置技巧 ### **消息序列化**: - 了解常见的消息序列化格式(如JSON, Protobuf) - 掌握序列化与反序列化的实现方法 ### **消息过滤与路由**: - 理解消息过滤的基本原理 - 掌握基于规则的消息路由策略 ## [Mybatis](https://www.mianshiya.com/bank/1801424748099739650) ### **Mybatis基本概念**: - 理解Mybatis的工作原理与核心架构 - 熟悉Mybatis与JDBC的区别与优势 ### **配置与映射**: - 掌握Mybatis的配置文件(如mybatis-config.xml)的编写 - 熟悉Mapper接口与XML映射文件的关联与使用 ### **动态SQL**: - 理解动态SQL的基本概念与语法 - 掌握使用`, , `等标签编写动态查询 ### **参数与结果映射**: - 熟悉参数传递与类型处理 - 掌握复杂结果集的映射(如一对多、多对多) ### **缓存机制**: - 了解Mybatis的一级缓存与二级缓存的实现与配置 - 掌握缓存策略的选择与优化 ### **插件机制**: - 理解Mybatis的插件架构与扩展点 - 掌握自定义插件的开发与集成 ### **事务管理**: - 了解Mybatis与Spring事务管理的集成 - 掌握事务的配置与使用方法 ### **性能优化**: - 理解Mybatis的性能瓶颈与优化策略 - 掌握批量操作与延迟加载的实现方法 ### **分页查询**: - 熟悉使用Mybatis实现高效的分页查询 - 掌握常用分页插件(如PageHelper)的配置与使用 ## [ElasticSearch](https://www.mianshiya.com/bank/1805423815382736897)(选学) ### **ElasticSearch基本概念**: - 理解ElasticSearch的核心架构与组成部分 - 熟悉ElasticSearch的分布式特性与集群管理 ### **索引与映射**: - 掌握创建索引与定义映射的基本方法 - 理解动态映射与手动映射的区别 ### **文档操作**: - 熟悉文档的CRUD操作(创建、读取、更新、删除) - 掌握批量操作与索引优化 ### **查询与搜索**: - 理解ElasticSearch的查询DSL(Domain Specific Language) - 掌握常用查询类型(如match, term, range, bool)的使用 ### **聚合分析**: - 了解聚合的基本概念与应用场景 - 熟悉常见聚合类型(如桶聚合、指标聚合)的实现方法 ### **分词与分析器**: - 理解文本分析与分词器的工作原理 - 掌握自定义分词器与分析器的配置 ### **性能优化**: - 理解索引优化的策略与方法 - 掌握查询性能优化技巧(如缓存、过滤)