Java面试深度解析:MyBatis、SpringBoot与MySQL核心知识点
需积分: 5 77 浏览量
更新于2024-06-16
1
收藏 5.66MB DOCX 举报
"Java面试题、MyBatis、SpringBoot、MySQL数据库的相关知识点"
这篇Java面试八股文的总结涵盖了多个重要领域,包括Java基础、MyBatis框架、SpringBoot微服务以及MySQL数据库。以下是对这些知识点的详细阐述:
1. **MyBatis**
- **Xml映射文件**:除了基本的`select|insert|update|delete`标签,还有如`<resultMap>`, `<association>`, `<collection>`, `<parameterMap>`, `<result>`等,用于定义结果映射、关联关系、参数映射等。
- **一对一映射**:MyBatis通过`<association>`标签实现一对一,可以配置`property`, `javaType`, `column`, `select`等属性来指定关联的字段和查询方法。
- **延迟加载**:MyBatis支持二级缓存,延迟加载是在需要时才执行关联查询,减少对数据库的访问,实现原理是通过代理机制在第一次访问属性时加载数据。
- **缓存机制**:MyBatis有一级缓存(SqlSession级别)和二级缓存(Mapper级别),缓存数据结构通常是HashMap,遵循LRU(Least Recently Used)策略。
2. **JDBC编程**:
- JDBC编程通常包括加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL、处理结果集、关闭资源等步骤。
3. **MyBatis设计模式**:
- MyBatis使用了工厂模式(SqlSessionFactoryBean)、代理模式(MapperProxy)和单例模式等设计模式。
4. **SpringBoot**
- **核心注解**:`@SpringBootApplication`,由`@SpringBootConfiguration`, `@EnableAutoConfiguration`, `@ComponentScan`组成,简化项目初始化。
- **启动方式**:可直接运行主类,或者打包成jar/war文件通过命令行或容器启动。
- **Starters**:是一系列预先配置的依赖集合,方便快速构建应用,如`spring-boot-starter-web`。
- **启动代码**:可以通过`CommandLineRunner`或`ApplicationRunner`接口实现启动时执行的代码。
5. **MySQL**
- **三范式**:第一范式(1NF)、第二范式(2NF)、第三范式(3NF),是数据库设计的基本原则,确保数据无冗余和依赖规范。
- **数据库引擎**:InnoDB和MyISAM是最常见的,InnoDB支持事务,MyISAM不支持;InnoDB使用行级锁定,MyISAM使用表级锁定。
- **事务隔离级别**:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)、串行化(SERIALIZABLE),MySQL默认为可重复读。
6. **数据库优化**
- **索引**:提高查询速度,包括B-Tree、Hash、R-Tree等类型,创建索引需考虑选择合适的字段和排序方式。
- **SQL优化**:避免全表扫描,合理使用JOIN,避免子查询,使用合适的数据类型,优化事务处理等。
- **表优化**:分页查询、读写分离、垂直分区(列裁剪)和水平分区(行划分)等方法。
这份面试总结全面地覆盖了Java开发人员在面试中可能遇到的关键问题,对于求职者来说是宝贵的复习资料。通过深入理解和掌握这些知识点,将有助于在面试中表现出色。
198 浏览量
点击了解资源详情
110 浏览量
138 浏览量
166 浏览量
2024-09-01 上传
小码叔
- 粉丝: 5187
最新资源
- 3DEC软件煤层开挖命令流:任意形状开挖解决方案
- Python数据科学必备numpy-1.16.2版本发布
- Fernando's Corner开源项目:软件、硬件与操作系统
- Envoy-Products:环保产品社区的MVC架构与技术实现
- XX贸易公司服务专员职务详解及职责要求
- 室外停车场3D模型设计参考:车棚模型解析
- Service Worker实用指南精要
- Hibernate后自动退出程序的开源解决方案
- 首都经济贸易大学合并会计报表:高效整合分析
- 实现HTML右键弹出菜单功能的源码指南
- numpy-1.16.0版本发布:Python数据科学新选择
- GCC编译DOS可执行文件脚本的探索与实践
- 白色装饰花瓶3D模型设计解析
- 实现PD控制以驱动二维四旋翼飞机运动
- 实现命令外壳rshell:C++编程项目详解
- Python实现的Noise2Noise:Keras深度学习噪点图像处理