Java面试必备:事务特性、数据库隔离级别与Spring核心概念
需积分: 9 87 浏览量
更新于2024-08-05
收藏 46KB MD 举报
"Java面试笔记,涵盖了Java开发中的关键知识点,包括事务的四大特性、数据库隔离级别、MyBatis的一级缓存和二级缓存、MySQL的存储引擎区别以及Spring的核心思想等。\n\n## 事务的四大特性\n事务是数据库操作的基本单元,其主要特性包括:\n\n### 原子性 (Atomicity)\n事务中的每个操作要么全部完成,要么全部不完成,不会留下部分执行的结果。如果在事务执行过程中发生错误,系统会回滚到事务开始前的状态。\n\n### 隔离性 (Isolation)\n隔离性确保了事务的执行互不影响,直到事务提交后,其更新才会对其他事务可见。这有助于防止脏读,即一个事务读取到另一个未提交事务的数据。\n\n### 一致性 (Consistency)\n事务执行前后,数据库保持一致状态,数据的完整性得到保证。例如,事务执行前后的数据总数应保持不变,防止出现脏读、不可重复读等问题。\n\n### 持久性 (Durability)\n一旦事务提交,其对数据库的修改将会永久保存,即使系统崩溃也不会丢失。\n\n## 数据库隔离级别\n数据库通常提供四种隔离级别以平衡并发性和数据一致性:\n\n- 脏读:允许读取未提交的数据,可能导致不准确的信息。
- 不可重复读:在同一事务内多次读取同一数据可能得到不同结果,因为其他事务可能已经修改了数据。
- 幻读:在同一个事务中,多次执行相同查询可能会得到不同的结果集,因为其他事务可能插入了新行。\n\n## MyBatis缓存\nMyBatis的一级缓存和二级缓存用于提高数据库查询效率:\n\n### 一级缓存\n默认启用,作用于Session级别。在同一个Session中,对于相同的SQL语句和参数,MyBatis会首先查找缓存,避免重复的数据库查询。\n\n### 二级缓存\n需要手动配置,其作用范围扩大到整个应用。开启后,多个Session间可以共享缓存,进一步提高性能。\n\n## MySQL存储引擎\nMySQL主要的两种存储引擎有MyISAM和InnoDB,它们各有特点:\n\n- MyISAM:不支持外键,采用表级锁定,适合读多写少的场景。在插入数据时会锁定整个表,但查询总行数时不需要全表扫描。\n- InnoDB:支持外键和行级锁定,更适合需要事务处理的场景。查询总行数时需要全表扫描,但提供了更好的并发性能。\n\n## Spring核心思想\nSpring框架基于以下主要设计原则:\n\n### 控制反转 (IOC)\n将对象的创建和管理从代码中分离,交由Spring容器负责,使得组件间的依赖关系解耦。\n\n### 依赖注入 (DI)\n通过容器在运行时动态地将依赖关系注入到组件中,而不是由组件自己去寻找依赖。\n\n### 面向切面编程 (AOP)\nSpring的AOP模块允许开发者定义横切关注点,如日志、事务管理等,这些关注点可以被编织到应用程序的多个点上,提高了代码的复用性和模块化。\n\n这些面试笔记覆盖了Java开发中重要的理论和实践知识,对于准备面试或提升个人技术水平都非常有帮助。"
点击了解资源详情
点击了解资源详情
点击了解资源详情
121 浏览量
2023-08-18 上传
127 浏览量

rlt1206757927
- 粉丝: 1
最新资源
- 乘风多用户PHP统计系统v4.1:源码与项目实践指南
- Vue.js拖放组件:vue-smooth-dnd的封装与应用
- WPF图片浏览器开发教程与源码分享
- 泰坦尼克号获救预测:分享完整版机器学习训练测试数据
- 深入理解雅克比和高斯赛德尔迭代法在C++中的实现
- 脉冲序列调制与跳周期调制相结合的Buck变换器研究
- 探索OpenCV中的PCA人脸检测技术
- Oracle分区技术:表、索引与索引分区深入解析
- Windows 64位SVN客户端下载安装指南
- SSM与Shiro整合的实践案例分析
- 全局滑模控制Buck变换器设计及其仿真分析
- 1602液晶动态显示实现源码及使用教程下载
- Struts2、Hibernate与Spring整合在线音乐平台源码解析
- 掌握.NET Reflector 8.2.0.42:反编译及源码调试技巧
- 掌握grunt-buddha-xiaofangmoon插件的入门指南
- 定频滑模控制在Buck变换器设计中的应用