面试八股文
文章平均质量分 86
深耕Java编程
一天进步一点也是进步,加油!
展开
-
带你完虐面试官-mybatis篇
一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session进行flush或close之后,该Session中的所有Cache就将清空,默认打开一级缓存。上面有两个表,一个是用户表,一个是订单表,是一对多的关系,也就是一个用户表对应多个订单表。查询用户的时候,暂时不查询订单数据,当需要订单的时候,再查询订单,这个就是延迟加载。查询用户的时候,把用户所属的订单数据也查询出来,这个就是立即加载。MyBatis支持延迟加载,但默认没有开启。原创 2024-05-30 00:23:25 · 448 阅读 · 0 评论 -
带你完虐面试官-Spring常见面试题
AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。因为一般在Spring的bean的中都是注入无状态的对象,没有线程安全问题,但如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决。原因:事务通知只有捉到了目标抛出的异常,才能进行后续的回滚处理,如果目标自己处理掉异常,事务通知无法知悉。原创 2024-05-20 22:59:11 · 667 阅读 · 0 评论 -
带你完虐面试官之MySQL主从同步和分库分表
二进制日志(BINLOG)记录了所有的DDl(数据定义语言)语句和DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。1、前提,项目业务数据逐渐增多,或业务发展比较迅速(单表的数据量达1000W或20G以后)2.从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay Log。3、IO瓶颈(磁盘IO、网络IO)、CPU瓶颈(聚合查询、连接数太多)将一个表的数据,拆分到多个表中(可以在同一个库中)。1、按业务对数据分级管理、维护、监控、扩展。将不同表拆分到不同库中。原创 2024-05-12 20:52:16 · 249 阅读 · 0 评论 -
带你完虐面试官之MySQL事务
事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。不同事务或相同事务对同一条记录进行修改,会导致该记录的undolog生成一条记录版本链表,链表的头部是最新的旧记录,链表尾部是最早的旧记录。简单的select(不加)就是快照读,快照读,读取的是记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞读。重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。原创 2024-05-12 19:19:36 · 477 阅读 · 0 评论 -
带你完虐面试官之MySQL优化
索引是帮助MySQL高效获取数据的数据结构提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗什么是聚簇索引,什么是非聚簇索引?聚簇索引(聚集索引):数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个非聚簇索引(二级索引):数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个什么是回表查询?通过二级索引找到对应的主键值,到聚集索引中查找整行数据,这个过程就是回表。原创 2024-05-11 23:43:30 · 919 阅读 · 1 评论