自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构哈希表(散列) 之Hash

算法还是需要类比现实才好学~

2024-01-30 14:25:35 1284 2

原创 [人话版]spring事件监听机制 和观察者模式

打个比方 你骑着电瓶车上班, 走到路口红灯亮了, 大家都抬着头看那圆圆的猴屁股啥时候变绿. 只要变绿,必须电门拧到底,率先冲出线,才有可能不迟到~~上述例子中观者者是"各位骑士"被观察者 “红绿灯”.. 当被观察者发生变化时, 观察者做出相应动作. 这就是观察者模式.

2024-01-22 14:09:55 648

原创 双亲委派机制[人话版]

今天逛了一下牛客网, 看到有面试问到了双亲委派机制是什么, tomcat有没有打破双亲委派 , 瞬间懵逼, 听都没听过的名字, 听着就稀奇古怪. 然后翻了一下网上的答案,大概了解怎么回事. 特意整理下, 如果学习请参考其他博客。

2024-01-12 16:48:48 433

原创 使用redis实现滚动分页效果

offset: 偏移量 如果偏移量是0, 就从此数据开始查(包含此数据), 1 从此数据后+1开始.以此类推…min: 最小分数. 本次用不上, 因为我们倒序查询, 有最大分数 和 count查询多少条就够了。我们在刷朋友圈或者微博的时候, 默认是显示了一部分, 当我们下拉的时候会动态展示出以后的内容。key: 就是主键, 本次是userId。max: 最大分数 倒序查询的起点。count: 总共查询多少条。

2023-12-18 10:02:56 287

原创 使用redis完成文章点赞功能

拿到用户id列表后, 查询数据库中对应信息, 可以用 sort field 对字段中的数据进行排序.参考自黑马头条. 以上代码为demo阶段. 并未投入使用.使用zset. 存入时 把当前时间当作score保存.取数据时可以按照range取出区间.

2023-12-13 22:43:32 83

原创 linux环境下mysql热备份脚本

备份的生成建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。优点就是不用停机,也不影响读写操作 ,缺点就是性能一般。直接copy数据库文件称为冷备份,适用大型数据库. 优点就是快, 缺点是 受限于数据库版本, 需要停机.将文件权限改为777 执行 chmod 777 /mnt/mysql_backup.sh。测试直接执行脚本是否可以正常生成备份文件. 如果正常通过, 原因可能有以下几方面。以下备份脚本参考自csdn博主"三七有脾气"备份不影响读取操作,但是影响写入操作。

2023-12-13 15:29:17 60

原创 redis处理缓存穿透和缓存击穿问题的思路

主要发生高并发情况下, 由于redis中的key失效, 大量的请求会直接请求到数据库中,给数据库造成很大压力 . 比如 热搜.请求数据在redis种查询不到, 在数据库中仍然查询不到, 这类问题往往是因为数据不存在导致的.

2023-12-12 15:57:56 30

原创 redis缓存穿透的解决办法

缓存穿透就是请求穿过redis查询不到数据,接着继续进入数据库查询,数据库中也不存在.如此循环往复, 每次都透到底.

2023-12-07 21:14:22 51

原创 [力扣]无重复字符的最长子串

答:在滑动窗口中,左指针只能往右走,不准往后退.举个容易理解的例子: str=“abba”;如果不加Math.max, 当右指针下标为3时, 左指针为0. 此时 下标1和下标2重复. 导致错误结果maxCount为3.如果加了Math.max, 前几轮已经排除了重复数值’b’和’b’.左下标移动到了2, 使用max,保证了下标不会倒回去.语言表达能力有限,如果理解不了,建议debugger一下就明白了时间复杂度:空间复杂度:

2023-11-27 19:15:00 29

原创 [力扣]排序计算

时间复杂度:空间复杂度:

2023-11-23 20:00:00 29

原创 算法-快速排序

快速排序就是两层循环查找, 每轮都找到最小的数, 跟当前元素进行互换. 所以时间复杂度是 O(n²) .

2023-11-23 19:45:00 23

原创 【力扣】只出现一次的数字

可参考亦或运算亦或运算

2023-11-23 19:00:00 21

原创 【算法】冒泡排序

冒泡排序是每次与相邻数进行对比, 如果比右侧数大,就交换位置. 每一轮都会把最大的数移到右侧. 因此 冒泡排序的时间复杂度是 O(n²)

2023-11-23 15:40:42 18

原创 [力扣]Problem: 11. 盛最多水的容器

Problem: 11. 盛最多水的容器文章目录思路解题方法疑问复杂度Code思路刚看到这道题,很容易想到的是暴力解法, 双层for循环 遍历所有情况,求出最大值. 但是我提交之后超时了… 后来翻阅评论,看到了双指针解法.解题方法此解题方法来自力扣评论区.对O(n)的算法写一下自己的理解,一开始两个指针一个指向开头一个指向结尾,此时容器的底是最大的,接下来随着指针向内移动,会造成容器的底变小,在这种情况下想要让容器盛水变多,就只有在容器的高上下功夫。 那我们该如何决策哪个指针移动呢?我

2023-11-21 19:45:00 25

原创 [力扣]128. 最长连续序列

Problem: 128. 最长连续序列文章目录思路解题方法复杂度Code思路看题后想到的是排序,然后判断连续. 但是时间不符合. 所以看的官方题解之后,学习了此解法.解题方法使用set去重.2.遍历set判断当前num是否为连续数首个元素 即 currNum-1不存在.3.找到首个元素后,再次循环,查询是否存在下一个元素 即currNum+1. 直到不存在下一个元素为止.4.每组完成后,与最大数进行比较, 即 Math.max();复杂度时间复杂度:添加时间复杂

2023-11-20 20:30:00 22

原创 【力扣】49.字母异位词分组

此题的难点有两个.类比生活bb几句. 仔细想来,涉及到归类也是key-value的样式, 比如黑色垃圾桶放厨余垃圾, 绿色垃圾桶放普通垃圾. 红色垃圾桶放不可回收垃圾. 颜色就是key, 各种垃圾就是vulue.

2023-11-17 21:15:00 20

原创 设计模式-状态模式

状态模式是将状态单独抽取出一个接口. 不同的状态来实现这个接口. 实现逻辑封装. 与策略模式基本相同,但是策略模式是做得同一件事的不同算法. 而状态模式是一件事的不同阶段.

2023-11-14 09:56:33 19

原创 设计模式-中介者模式

中介者模式是提供一个中间类, 将多个模块之间的相互耦合, 改成与中介者类的耦合. 由原本的网状结构改变位星型结构

2023-11-13 20:30:00 26

原创 设计模式-策略模式

策略模式就是将同一行为的算法分开写, 用于消除if else. 比如 旅行的出游方式,选择骑自行车、坐汽车.

2023-11-11 19:49:28 19

原创 设计模式-观察者模式

观察者模式也叫订阅模式. 当一个对象(被观察者)发生改变时, 会通知到所有的订阅对象(观察者). 一对多关系有点类似MQ中的发布订阅模式.

2023-11-07 13:52:54 23

原创 设计模式-享元模式

暂未学习。

2023-11-03 16:26:58 17

原创 设计模式-外观模式

比如你在启动电脑时,只需要按一下开关就可以使用了.电脑内部启动cpu,启动ram,启动rom,加载系统…这些不需要关心.开关就是外观模式,下面用一张图来表达,外观模式干的什么外观模式就是在原来的基础上, 又包了一层, 这以层负责将需要调用的服务集合在一块, 这样做降低了代码的复杂性,提高了灵活性.

2023-11-03 15:56:38 18

原创 设计模式-代理模式

代理模式是一种结构型模式, 它提供了原对象的替代品,来进行服务.并且可以对原服务进行增强.

2023-11-02 16:00:50 34 1

原创 设计模式-装饰者模式

装饰模式是新增加功能,但是不用修改原结构. 他是对原有类进行包装.

2023-11-02 11:20:24 35 1

原创 设计模式-组合模式

组合模式就是把对象当成参数引入过来. 一般为树形结构。

2023-10-25 16:42:49 35 1

原创 设计模式-桥接模式

将业务按照两个维度来划分, 然后通过抽象类将另一个维度注入进来. 使用时可以灵活组合, 基于此特征, 后期新增这两个维度下的实现时, 代码改动量小.为什么不用两个接口, 通过入参带入呢?

2023-10-23 10:49:14 25 1

原创 设计模式-适配器模式

当你希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用适配器类。加了一个中间层会让代码变得更加安全,符合单一职责,由于保留了原有逻辑也更加易于后期调试,

2023-10-16 20:19:59 21 1

原创 设计模式-原型模式

原型模式就是将自身copy出一个一模一样的对象, 也叫克隆模式.可以类比为 windows中的复制粘贴。我感觉基本上用不着啊…

2023-10-13 10:19:21 14

原创 设计模式-建造者模式

建造者模式就是 分布创建复杂对象. 按照不同的组合搭配成对象.

2023-10-12 16:57:46 18

原创 设计模式-单例模式

一个类仅有一个实例.

2023-10-10 15:36:03 16 1

原创 设计模式-工厂模式

工厂模式是一种创建型模式. 它将创建对象的过程隐藏.

2023-10-10 14:19:22 24 1

原创 mysql事务的四种隔离级别

声明: 此文章仅限于记录学习之用 , 受限于自身水平和理解能力 , 因此结论可能是不正确的.

2023-09-27 18:22:51 23

原创 mybatis-plus 入参为entity时, 模糊搜素

项目中用的mybaitsPlus, 代码生成器生成的入参为 entity, 但是未对字段做明确处理, 导致所有字段都是全匹配. 本着只要不科学就是自己菜的原则,感觉这事框架肯定考虑到了, 于是搜索相关文档, 查到相关用法, 特此记录.

2023-09-15 14:33:45 113

原创 java自定义注解校验开始时间小于结束时间

import com/*** 时间段校验*/ @Target(ElementType . TYPE) @Retention(RetentionPolicy . RUNTIME) @Documented //实现类 @Constraint(validatedBy = DateValidatorClass . class) public @interface TimeInterval {

2023-08-15 10:57:47 572

原创 Spring 自定义校验注解

spring 自定义校验注解

2023-02-20 21:39:53 226

原创 排序---数组桶排序

桶排序是把数组中的数值可能出现的所有可能性罗列出来, 一个个的"桶",然后将数组中出现的数据,放入桶中,按照桶的编号进行排序.例如:统计运动会各班级的的金牌(最多得奖牌数5枚),并按照数量倒叙排列.那么所有的的情况有 0,1,2,3,4,5. 我们把这个想象成一个桶.起初每个桶都是空的. 每个班的出现的金牌数,就在对应编号的桶中放一面旗子.最后数一数每个桶中的旗子就可以了.

2022-09-19 10:58:09 185

原创 使用webhooks实现前端项目自动部署

title: ‘使用webhooks实现前端项目自动部署’date: 2022-01-12 21:51:24tags: 编程categories: 搭建服务器keywords: webhook 自动部署description: 客户端提交到git后,服务器端自动部署前端代码.top_img: https://gitee.com/xuzhipu/img/raw/master/202201130723489.jpgcover: https://gitee.com/xuzhipu/img/raw/.

2022-01-19 09:23:05 884

原创 idea导出maven项目依赖的jar包

mvn dependency:copy-dependencies -DoutputDirectory=lib注意使用mvn命令是需要配置好maven的环境变量一、导出到自定义目录中在maven项目下创建lib文件夹,输入以下命令:mvn dependency:copy-dependencies -DoutputDirectory=libmaven项目所依赖的jar包都会复制到项目目录下的lib目录下这是我需要导出的jar包:项目的根目录:...

2020-10-28 10:51:08 2307 2

原创 ajax获取 json有数据, 取值为undefined 原因及解决办法.

ajax获取 json有数据, 取值为undefined 原因及解决办法.欢迎使用Markdown编辑器问题复现:解决办法欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。问题复现:前后端分离的java项目, idea中可以打印出数据,...

2019-07-14 11:16:08 3309 1

空空如也

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

TA关注的人

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