自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 今日八股-01

主库在事务提交的时候,会将数据变更记录在二进制日志文件binlog中,从库读取主库的binlog文件,写入到从库的中继日志RelayLog中,从库重做中继日志中的事件,从而完成数据的同步。:将不常用的字段拆分出来单独放在一张表中,把text、blob等大字段拆分出来单独放在一张表中。:将一个表中的数据拆分到多个表中。根据路由规则将数据存储到不同的表中,优化了单一表数据量过大而产生的性能问题,避免了IO争抢并减少锁表几率。:将一个数据库中的数据拆分到不同的数据库中。根据不同的业务将不同表拆分到不同的库中。

2024-04-20 15:44:28 294

原创 spring的refresh

5. **注册Bean后处理器**:注册实现了`BeanPostProcessor`接口的Bean后处理器,这些后处理器可以在Bean的初始化前后执行自定义逻辑。8. **初始化其他特殊Bean**:根据配置初始化其他特殊的Bean,如`ApplicationListeners`。10. **注册Bean的销毁钩子**:注册Bean的销毁钩子,以便在应用上下文关闭时能够正确地销毁Bean。1. **准备刷新**:记录应用上下文的启动时间,设置活跃状态为`true`,并准备一个事件发布器。

2024-04-17 08:16:33 483

原创 排序算法。

将数组划分为有序和无序,每一轮都选择一个最小的值加入到已排序部分。

2024-04-16 12:18:15 265

原创 设计模式之单例模式

多线程破坏单例使用DCL+voliatle预防,反射破坏单例使用在构造方法处检查对象是否存在进行预防,实现序列化接口破坏单例使用实现readResolve方法,返回已经创建的单例对象。unsafe目前还没有预防的方式。

2024-04-15 22:51:43 1016

原创 代码随想录-二叉树

递归:可以使用递归的大多都可以使用栈进行迭代。

2024-04-14 21:59:45 140

原创 代码随想录-单调栈

暴力:当前列雨水面积:min(左边柱子的最高高度,记录右边柱子的最高高度) - 当前柱子高度。

2024-04-14 12:54:12 251

原创 代码随想录-KMP算法

【代码】代码随想录-KMP算法。

2024-04-11 19:39:19 196

原创 代码随想录-动态规划

- 力扣(LeetCode)int sum=0;

2024-04-05 20:49:08 259

原创 代码随想录-贪心

使用变量替换map,效率更高。

2024-04-05 15:17:35 163

原创 代码随想录-图论

【代码】代码随想录-图论。

2024-04-04 16:04:45 404

原创 代码随想录-回溯

照猫画虎的竟然写出来了。

2024-04-04 12:32:42 213

原创 leetCode-01

【代码】leetCode-01。

2024-03-31 20:22:39 260

原创 分布式锁的实现方式

zookeeper可以创建临时顺序节点来实现锁机制,每个节点尝试创建同一个路径的节点,创建成功的节点获得锁,访问完成后删除节点释放锁。通过数据库中建立一个锁表,每个节点访问共享资源前向表中插入一条记录,成功插入的节点获得锁,访问完成后删除记录释放锁。redis提供了分布式锁的实现方案,比如setnx,redisson。

2024-03-29 11:24:25 271

原创 代码随想录day04

【代码】代码随想录。

2024-03-28 20:51:29 180

原创 学成在线day06

Max-request-size: 单次请求的大小限制。max-file-size:单个文件的大小限制。如何根据文件获取本地文件的路径。将分块文件上传到minio。

2024-03-27 19:20:18 225

原创 代码随想录day03

【代码】代码随想录day03。

2024-03-26 21:31:18 202

原创 代码随想录day02

最大滑动窗口模板:给定数组nums,定义滑动窗口的左右边界,i,j,求满足某个条件的滑动窗口的最大长度。一下思路来自leetcode题解:leetcode76题球的是最小滑动窗口,本题求解的是最大滑动窗口。最小滑动窗口模板:给定数组nums,定义滑动窗口的作用边界i,j,求满足某个条件的滑动窗口的最小长度。最短子字符串 "BANC" 包含了字符串 t 的所有字符 'A'、'B'、'C's 和 t 都会变成 "ac"。

2024-03-23 19:22:50 295

原创 jvm学习

定义: Java Virtual Machine - java 程序的运行环境(java二进制字节码的运行环境)好处:一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查多态比较: jvm jre jdkjava程序的执行过程:java源码---编译---->java字节码----解释器----->机器码(交给cpu执行)

2024-03-22 16:02:42 881

原创 代码随想录day01

给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。思路:就是查找目标元素最左边的元素和最右边的元素。查找最左边元素就是找到目标值后继续向左找,查找最右边元素同理。left=mid+1;. - 力扣(LeetCode)

2024-03-20 21:16:10 724

原创 leetcode-链表

方法一:pa=headA,pb=headB,不断遍历两个链表,如果指向null则指向另一个链表的头节点,当pa==pb时如果相交则是交点,如果不相交,则pa==pb==null,则不相交。判断链表中是否存在环,使用快慢指针,快指针每次走两步,慢指针每次走一步,如果慢指针与快指针相与则存在环,否则无环。方法三:遍历获得两个链表的长度,然后让较长的链表先走d个节点,然后,两个节点同时移动,如果相遇则相交,否则没有焦点。将headA的链表依次加入set中,然后遍历headB所在链表,判断节点是否存在。

2024-03-20 13:15:13 422

原创 java基础复习

创建字符串的方式:当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在。不存在就创建新的对象,存在则复用。栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。添加的内容大于16会扩容(原来的容量*2+2=16*2+2=34)堆:存储对象或者数组,通过new来创建的都存储再堆内存中。本地方法栈:jvm在使用操作系统功能的时候使用,7.将堆内存中的地址值复制给左边的局部变量。方法区:存储可以运行的class文件。如果添加的内容长度小于16,直接存。默认创建一个长度为16的字节数组。

2024-03-19 18:30:15 227

原创 redis实战-黑马点评-优惠卷秒杀

以上方案的失败率高,当100个线程查询到stock为100,然后一个线程修改了stock,其他线程就全部失败,因此需要改为,当stock>0即可。全局ID生成器:是一种再分布式系统下生成全局唯一的ID的工具。唯一性,高可用,高性能,安全性,递增性。修改sql语句为,使用CAS方式实现乐观锁。在更新库存时查询库存是否已经被修改。

2024-03-19 17:25:03 404

原创 redis-黑马点评-商户查询缓存

Spring中bean的注入方式:在Spring框架中,注入Bean(对象)的方式有多种,以下是一些常见的方法:1. 构造器注入(Constructor Injection):通过构造器注入依赖,可以确保在创建对象时,它所依赖的其他对象也被创建。```@Autowired```2. Setter方法注入(Setter Injection):通过setter方法注入依赖,可以在对象创建后,再设置依赖的对象。```java。

2024-03-18 21:29:18 960 1

原创 redis实战-黑马点评-短信登录

拦截器不断刷新token有效期,并且将用户的信息存入ThreadLocal中。登录注册:修改session保存用户信息为使用redis保存用户信息。短信验证码:修改session保存验证码为使用redis保存验证码。拦截器登录校验:自定义拦截器,添加拦截器。

2024-03-17 18:43:44 713

原创 面试题-微服务

服务监控:服务提供者每30秒向eureka发送心跳,报告健康状态,如果eureka90秒,没有收到心跳,就会从eureka中剔除。服务发现:消费者从eureka中拉去服务列表信息,如果服务提供者为集群,则使用负载均衡算法选择一个服务发起远程调用。服务注册:服务的提供者需要将自己的信息注册到Eureka中,有Eureka来保存这些信息。Sentinal:服务保护。Hystrix:服务熔断。Eureka:注册中心。Ribbon:负载均衡。Ribbon:负载均衡。Fegin:远程调用。Gateway:网关。

2024-03-16 14:23:55 508

原创 java面试题——并发篇

AQS实现可重入锁的关键在于他维护了一个整数类型的变量来表示锁的持有次数,当线程尝试获取锁时,会检查当前锁的持有次数,为0则将锁分配给该线程,如果不为0,则将线程放入等待队列,并递增持有次数,当线程释放锁时,他会减少持有次数,如果持有次数变为0,则唤醒等待队列中的下一个线程。可重入锁的实现依赖于线程持有锁的状态,每个线程在尝试获取锁时,AQS会检查当前线程是否是锁的持有者,如果是,则增加锁的持有次数,而不是阻塞线程,这样,同一个线程可以多次进入同步代码块,而不会造成死锁。例如以下指令顺序变为1,3,2。

2024-03-16 14:09:19 333

原创 java面试题

1.8版本:1.8版本的ConcurrentHashMap不在基于segment实现,每个线程进行put时,如果发现ConcurrentHashMap正在扩容,那么该线程也加入一起进行扩容,如果某个线程put时没有在扩容,则将key-value添加到ConcurrentHashMap中,判断是否超过阈值,超过则进行扩容,ConcurrentHashMap支持多线程扩容,扩容前先生成一个新数组,转移元素时,将新数组分组,将每个分组交给不同的线程对元素进行转移,每个线程负责一个或多个分组。

2024-03-13 21:14:54 843

原创 xxl-job

幂等性:它描述了一次和多次请求某一个资源对于资源本身应该具有相同的结果,幂等性是为了解决重复提交问题,比如:恶意刷单,重复支付等。(3)唯一序列号,操作传递一个唯一序列号,操作时判断与该序列号相等则执行。3.在执行器所在的服务的配置文件中配置任务调度中心的相关信息。(2)乐观锁:常用于数据库,更新数据时根据乐观锁状态去更新。2.在执行器服务中导入xxl-job的依赖(执行器)5.创建一个执行器类,里面写对应的执行器方法。(1)数据库约束:比如:唯一索引,主键。7.解决幂等性常用的方案。

2024-03-12 17:33:30 318 1

原创 面试题-框架篇

由于在spring的bean当中一般都是注入无状态(不可修改)的对象,没有线程安全问题,如果在bean中定义可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决。答:(1)记录操作日志(2)缓存处理(3)spring中内置的事务处理。使用aop的环绕通知+切点表达式(找到记录日志的方法),通过环绕通知的参数获取请求方法的参数,获取后可以将相关信息保存到数据库。答:spring中的bean默认是单例(singleton)的,可以通过@Scope("prototype")设置为非单例的。

2024-03-03 13:08:29 304

原创 学成在线day05

配置的优先级:醒目应用名配置文件>扩展配置文件>共享配置文件>本地配置文件。在nacos的配置文件中添加以下配置修改为本地优先。

2024-02-29 21:51:41 339

原创 Redis

答:缓存,分布式锁,消息队列,延迟队列。缓存存在的问题:缓存三兄弟(穿透、击穿、雪崩)、双写一致、持久化、数据过期策略、数据淘汰策略。分布式锁的实现:setnx、redisson。消息队列和延迟队列使用何种数据类型。2.什么是缓存穿透,发生了缓存穿透要如何解决?缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会写入到缓存中,就会导致每次请求都去查数据库。解决方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存。简单,但消耗内存,可能会发生不一致。解决方案二:布隆过滤器:用于检索一个元素是

2024-02-26 23:14:50 889 1

原创 vue入门

vue入门

2023-12-02 10:55:10 373

原创 跨域问题的局部解决和全局配置

局部:在controller上添加注解。全局:在配置类中添加跨域映射。

2023-11-30 22:50:15 392

原创 vue从入门到精通

百度姓名</td><td>年龄

2023-11-28 16:13:48 742

原创 springboot入门

mybatis的启动依赖都依赖哪些配置:1.创建dmybatis-spring-boot-autoconfigure模块,创建MybatisAutoConfigure类实现自动配置,再resource下创建META-INF/spring/xxx.imports实现自动配置。2.引入相关依赖:除了autoconfigure,因为我们要自定义自动配置。创建自定义配置类。@Bean@Bean。

2023-11-15 16:42:17 79

原创 Redis的持久化

以上的自动保存功能是在redis正常退出时才会执行自动保存,但是如果在运行过程中突然宕机,数据就会丢失。bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据,完成fork后读取内存中的数据。存入数据,自动创建aof文件,下次启动时再次执行aof中的命令,对数据进行恢复。设置save 5 1:在5秒内,如果至少有一个key被修改,则执行bgsave,如果是save ""则表示禁用RDB。AOF(追加文件),Redis处理的每一个写命令都会记录在AOF文件中,可以看作是日志文件。

2023-11-14 12:34:41 29 1

原创 分布式事务

分布式事务

2023-11-12 22:02:39 337 1

原创 算法与数据结构之数组

数组

2023-11-10 14:47:11 24 1

原创 二分查找算法

二分查找

2023-11-08 17:14:38 122 1

原创 spring注解开发

1.使用注解定义bean,在需要管理的类上添加@Component("userDao"),@Respority,@Service,@Controller等注解。spring注入简单类型:添加@Value(“zhangsan”)可以不指定bean的名称,但是获取bean的时候要通过类型获取。spring注入引用类型:添加@Autowired。属性上添加@Value(${name})spring使用注解方式管理第三方bean。2.在配置文件中指定要扫描的包。第三方bean的依赖注入。

2023-10-26 13:29:01 15

生成jwt令牌的使用方式

生成jwt令牌的使用方式

2024-03-01

会话跟踪技术cookie,session

会话跟踪技术cookie,session

2023-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除