前言
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。
在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多,大概分成这样几类:
1、对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的QPS和TPS等关键数据。
2、设计了一些方案,但是细节掌握不透彻:讲不出该方案要关注的技术点和可能带来的副作用。比如读性能有瓶颈会引入缓存,但是忽视了缓存命中率、热点key、数据一致性等问题。
3、理解片面,把高并发设计等同于性能优化:大谈并发编程、多级缓存、异步化、水平扩容,却忽视高可用设计、服务治理和运维保障。
4、掌握大方案,却忽视最基本的东西:能讲清楚垂直分层、水平分区、缓存等大思路,却没意识去分析数据结构是否合理,算法是否高效,没想过从最根本的IO和计算两个维度去做细节优化。
Mybatis入门
1、什么是Mybatis?
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
2、为什么要用Mybatis?
3、Mybatis快速入门
- 导入开发包
- 准备测试工作
- 创建mybatis配置文件
- 编写工具类测试是否获取到连接
- 创建实体与映射关系文件
- 编写DAO
4、Mybatis工作流程
5、完成CRUD操作
- 增加学生
- 2根据ID查询数据
- 查询所有数据
- 根据id删除
- 修改
- 小细节
- Mybatis分页
6、动态SQL
- 动态查询
- 动态更新
- 动态删除
- 动态插入
Mybatis配置信息
1、映射文件
2、配置文件
关联映射
Mybatis【多表连接】
缓存+Mapper代理+逆向工程
1、Mybatis缓存
2、mybatis和ehcache缓存框架整合
3、Mapper代理方式
4、Mybatis解决JDBC编程的问题
5、Mybatis逆向工程
Mybatis整合Spring
1、Mybatis与Spring整合
Mybatis常见面试题
Mybatis源码——入门
- 为什么要使用MyBatis
- 如何使用MyBatis
Mybatis源码——配置文件解析过程
配置文件解析过程分析
Mybatis源码——映射文件解析过程
1、映射文件解析解析入口
2、解析映射文件
3、Mapper接口绑定过程分析
4、处理未完成解析的节点
Mybatis源码——SQL执行流程
1、SQL执行入口
2、查询语句的执行过程
3、更新语句的执行过程
4、SQL执行过程总结
Mybatis源码——内置数据源
1、内置数据源初始化过程
2、UnpooledDataSource
3、PooledDataSource
Mybatis源码——缓存机制
1、缓存类介绍
2、CacheKey
3、一级缓存
4、二级缓存
Mybatis源码——插件机制
- 插件机制原理
- 实现一个分页插件
给大家分享下我的复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
资料获取方式:戳这里前往我的腾讯文档免费下载
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
都已整理好,需免费下载点击这里即可
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
55046939)]
[外链图片转存中…(img-aDZqZC9x-1621855046939)]
[外链图片转存中…(img-49Ptf1GM-1621855046940)]
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外链图片转存中…(img-9MtGkmH3-1621855046941)]
[外链图片转存中…(img-C3vOS1nG-1621855046942)]