# java面试题 **Repository Path**: surprise1213/interview-questions ## Basic Information - **Project Name**: java面试题 - **Description**: 常见面试题,持续更新中...... - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 9 - **Created**: 2025-09-01 - **Last Updated**: 2025-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 面试问题整理 本项目整理了常见的技术面试问题,涵盖Java、JVM、MySQL、Redis、Spring、Spring Boot、MyBatis、RabbitMQ等多个技术领域,旨在帮助开发者更好地准备技术面试。 ## 目录 - [03 IO.md](#03-iomd) - [05 JVM.md](#05-jvmd) - [06 MySQL.md](#06-mysqld) - [07 Redis.md](#07-redismd) - [08 Spring.md](#08-springmd) - [09 SpringMVC.md](#09-springmvcmd) - [10 Mybatis.md](#10-mybatismd) - [11 SpringBoot.md](#11-springbootmd) - [13 RabbitMQ.md](#13-rabbitmqmd) - [15 SpringSecurity.md](#15-springsecuritymd) - [18 Linux.md](#18-linuxmd) --- ## 03 IO.md ### 基础 - 字节流与字符流的区别 ### 模型 - IO模型介绍 - AIO、BIO的定义与区别 ### NIO - 非阻塞NIO原理 - 阻塞IO与非阻塞IO的区别 - NIO、BIO、AIO的应用场景 --- ## 05 JVM.md ### 内存区域 - JVM内存区域划分(程序计数器、本地方法区、堆等) ### 垃圾回收 - GC原理及作用 - JVM判断对象是否可回收的方法 - 常见垃圾回收算法 - 新生代与老年代的回收策略 - 常见GC收集器 - FullGC触发条件 ### 类加载 - JVM类加载机制 - 类加载器及其层级关系 - 双亲委派机制的理解与优缺点 - 如何打破双亲委派机制 ### 调优 - JVM调优参数介绍 --- ## 06 MySQL.md ### SQL基础 - SQL优化方法 - 数据库范式 - 事务特性 - 常见约束 - union 与 union all 的区别 - 视图的作用 - 主键的作用 - varchar 与 char 的区别 - binlog格式及区别 - count(1)、count(*)、count(列名)的区别 ### 索引 - 索引的作用与分类 - InnoDB与MyISAM索引实现区别 - 索引失效的场景 - 事务隔离级别 - 数据库锁机制 - 死锁与优化建议 - 聚簇索引与非聚簇索引 - 回表查询与覆盖索引 - 索引最左原则 - B-Tree与B+Tree的区别 - MySQL执行SQL的流程 ### 优化 - explain关键字解析 - 大数据批量操作优化 - MySQL调优步骤 - 慢查询定位与优化 - 分区与分库分表设计 ### 其它 - MySQL与PostgreSQL的区别 - 普通视图与物化视图 - UUID与自增ID的区别 - SQL执行顺序 --- ## 07 Redis.md ### 基础 - Redis常见数据类型及使用场景 - Redis哨兵模式 ### 进阶 - 缓存穿透、缓存雪崩、缓存击穿及解决方案 - Redis内存淘汰策略 - Redis持久化机制 - Redis哈希槽 - Redis多线程机制 - Redis事务机制 - MySQL与Redis数据一致性 - 延时双删实现 --- ## 08 Spring.md - Spring核心模块介绍 - IOC/DI的理解 - Spring Bean生命周期 - Bean注入方式与作用域 - BeanFactory与ApplicationContext区别 - AOP核心概念 - Spring事务回滚异常处理 - Spring AOP事务失效场景 - 循环依赖解决方案 - @Autowired与@Resource区别 - 事务传播机制 - Spring设计模式 --- ## 09 SpringMVC.md - Spring MVC请求处理流程 - @PathVariable、@RequestParam、@RequestBody区别 - 过滤器与拦截器区别 - 拦截器原理 - @Controller注解作用 --- ## 10 Mybatis.md - #{}与${}的区别 - MyBatis缓存机制 - PageHelper底层原理 - MyBatis与MyBatis Plus区别 --- ## 11 SpringBoot.md - Spring Boot事务使用与失效原因 - Spring Boot启动流程 - Spring Boot自动配置原理 - Spring Boot Starter工作原理 - Spring、Spring Boot、Spring Cloud关系 --- ## 13 RabbitMQ.md ### 基础 - 响应时间、吞吐量、QPS、并发数 - 阻塞队列异步消费顺序保证 ### RabbitMQ - RabbitMQ常见工作模式 - 消息重回队列处理 - 消息不丢失保障 - 多线程异步与MQ区别 - 消息健壮性保障 - 消息重复消费问题 --- ## 15 SpringSecurity.md - Spring Security认证流程 --- ## 18 Linux.md ### Linux - Linux日志查看方式 - Linux内存使用率查看 ### Nginx - 正向代理与反向代理 - Nginx高可用配置 ### Docker - Docker常用指令及含义 --- 如需进一步了解某个模块内容,请查看对应文件。欢迎贡献更多问题与解答!