Java面试深度解析:MyBatis、SpringBoot与MySQL核心知识点
需积分: 5 189 浏览量
更新于2024-06-17
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开发人员在面试中可能遇到的关键问题,对于求职者来说是宝贵的复习资料。通过深入理解和掌握这些知识点,将有助于在面试中表现出色。
2024-09-01 上传
2020-04-11 上传
2024-09-01 上传
小码叔
- 粉丝: 5099
- 资源: 5404
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载