09 2024 档案
摘要:空指针的bug处理 出现A.xxxx的时候要考虑A如果为null的空指针异常 //误报,此时first报空指针风险,但是不可能 for (int i = 0; i < size; i++) { TreeNode first = queue.pollFirst(); if (first.left !=
阅读全文
摘要:深分页问题: limit offset, size 比 limit size 要慢,且offset的值越大,sql的执行速度越慢。 sql内部执行流程: mysql内部分为server层和存储引擎层。一般情况下存储引擎都用innodb。server层有很多模块,其中需要关注的是执行器是用于跟存储引擎
阅读全文
摘要:了解OpenFeign实现原理,实现过程中学习了两个Spring扩展接口 定义接口,添加自定义注解,注解的属性值代表请求地址 接口内定义方法,方法上加@RequestMapping注解属性值是请求路径 自定义注解,注解属性值可以设置为请求地址 给添加了自定义注解的接口创建代理对象,创建时机在bean
阅读全文
摘要:一、策略模式概述: 策略模式(又叫政策Policy模式),属于对象行为模式下的:Strategy类提供了可插入式(Pluggable)算法的实现方案。 策略模式的定义-意图:定义一系列算法,将每一个算法封装起来,并让它们互相替换。策略模式让算法可以独立于使用它的客户变化。 二、模式策略的优缺点: 优
阅读全文
摘要:大数据量插入数据库问题: 批量插入:大量数据保存在List中然后进行批量插入,超出最大数据包限制了,可以通过调整max_allowed_packet限制来提高可以传输的内容,不过由于30万条数据超出太多 List<User> userList = new ArrayList<>(); for (in
阅读全文
摘要:背景: 当从API获取数据或与其他系统交换信息时。有时json字符串可能会非常庞大,以至于读取到内存中会导致内存溢出或者性能问题 流式处理: 如果JSON字符串过大,不适合一次性加载到内存中,可以考虑使用流式处理。例如,使用Jackson库的JsonParser,可以逐行解析JSON,从而避免一次性
阅读全文
摘要:InstantiationAwareBeanPostProcessor 是 Spring 框架提供的一个扩展接口,通过实现 InstantiationAwareBeanPostProcessor 接口,并重写其中的方法,可以在 Spring 容器实例化和初始化 bean 的各个阶段进行自定义处理,从
阅读全文
摘要:MySQL在线DDL特性提供了即时支持instant 、copy方式,还有原表in-place方式。有些过程中也允许并发DML。 语法: ALTER TABLE tbl_name , alter_option: {...}, ALGORITHM [=] {DEFAULT | INSTANT | IN
阅读全文
摘要:org.springframework.beans及org.springframework.context这两个包是Spring IoC容器的基础,其中重要的类有BeanFactory,BeanFactory是IoC容器的核心接口,其职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖
阅读全文
摘要:为什么用MQ? 解耦: A系统向BCD系统发送数据,调用接口发送,如果新来的E系统需要数据,旧的D系统不需要数据,那么就需要频繁的修改A系统的代码,并且还需要考虑BCD系统挂掉的问题,数据非常重要的话,是要重发呢?还是暂时存起来? 但是如果使用MQ,A系统只需要考虑把数据发送到MQ就不用操心别的了,
阅读全文
摘要:1、B树 B树(也有被称作 B- 树,B-树和B树是同一个东西,统称B树)。本质是一种多路平衡查找树,目的在于提高磁盘的效率,二叉树的查找效率已经很高了,但是如果存储大量信息,这个二叉树的深度就会很高,这些不同深度的信息在硬盘上存储的会很分散,在不同的道上,所以降低了查找效率,而B树可以改善这一问题
阅读全文
摘要:一、全字段排序 先创建一张user表,字段name,age,address,插入随机数据100w条记录,由于按照name查询,所以给name字段添加索引:alter table user add index idx_name (name); 这条SQL的Explain的执行计划:EXPLAIN SE
阅读全文