- 博客(201)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 博客动态校验+静态校验二次开发方式
静态校验:1:将需要静态校验的参数继承BaseReqeust类重写validate方法:动态校验:1:在需要校验的实现类上加: @BizValidate注解2:写一个校验类,方法命名规范为:需要校验的Impl方法名取消Impl尾缀改为Validator:3:因为有相同的方法入参,做一些逻辑的动态校验
2023-12-17 17:09:00
705
原创 MySQL的binlog和redolog区别
MySQL的binlog和redolog都是用于记录数据库操作的日志文件,但是它们有不同的作用和特点。1. 作用不同:binlog:用于恢复数据或进行数据复制。redolog:用于保证数据的一致性和持久性。2. 记录内容不同:binlog:记录的是所有对数据库的DDL语句和DML语句,包括增、删、改、查等操作。redolog:只记录对InnoDB表的修改操作,包括数据页的修改、索引页的修改等。3. 存储位置不同:binlog:存储在磁盘上,可以配置为在主服务器和从服务器上都记录。
2023-06-06 22:43:30
1219
1
原创 HashMap的put底层原理
1:首先,将map中的key取出来计算出他的hashcode2:将改hashcode>>>16右移16位得出后再将这个右移后的值与原本的hashcode经行异或运算(为了将key的高16位和低16位都参与到了hash值的计算中,从而减少哈希冲突的可能性,提高HashMap的性能。)3:上一步异或运算后得到的新的HashCode值再与(n-1)按位与运算后得到的值就是key所在的索引位置。(为了保证key的索引位置在HashMap的容量范围内,同时也可以减少哈希冲突的可能性,提高Hash
2023-05-26 23:24:10
442
原创 课程表 II:拓扑i排序
在上图中,左边这个图我们首先一个一个点的去判断他们的入度是多少,从左到右就是 (0:0),(1:1),(2:1),(3:2),然后我们先找到入度为0的点接下来删除掉这个点以及他指出去的边,然后重复这个过程,一个一个输出那些入度为0的点,这个图最终的拓扑排序就是:0,1,2,3或者0,2,1,3这样,那么知道了拓扑排序再来看这道题就很简单了。
2023-05-23 15:52:21
688
1
原创 调整数组顺序使奇数位于偶数前:双指针
Problem: 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面文章目录思路解题方法复杂度Code思路一个循环i遍历数组全部数字,然后两个指针j1和j2一个从0开始加一个从最后开始减,新开辟一个额外数组res存储最终结果,一个一个判断是奇数还是偶数,基础就res[j1++]等于它否则res[j2–]等于它。解题方法描述你的解题方法复杂度时间复杂度:添加时间复杂度, 示例: O(n)O(n)O(n)空间复杂度:添加空间复杂度, 示例: O(n)O(n)O
2023-05-20 18:00:02
582
原创 机器人的运动范围:DFS
然后定义dfs遍历,要额外传入一个vst[][]辨别是否已经走过,防止无限循环造成栈溢出,外面定义res一开始是1因为最开始的{0,0}格子一定会占一个结果,然后每遍历一遍+1即可
2023-05-20 13:17:46
668
原创 最大子数组和:动态规划
Problem: 53. 最大子数组和文章目录思路解题方法复杂度优化前:code优化后:Code,直接在原来数组基础上改动思路首先就是赋予dp[0]为nums[0],然后循环遍历数组判断dp[i-1]是否小于0,如果小于0那么dp[i]就是nums[i],负责dp[i]就是dp[i-1]+nums[i],这样就可以保证每个dp[i]都是目前序列的最大值,最后返回最大的dp[i]就好解题方法描述你的解题方法复杂度时间复杂度:添加时间复杂度, 示例: O(n)O(n)O(n)
2023-05-19 13:53:44
522
原创 最长重复子数组:基础dp
使用rights[n]和lefts[n]两个int数组去遍历存放每一个元素对应的下一个更小,由于最后一个没有下一个更小,所以默认赋值rights都是n,然后左边第一个继续往左同理没有下一个更小就lefts赋初值-1,然后两次遍历完后就可以一个一个求面积更新最大了
2023-05-17 11:18:22
356
原创 柱状图中最大的矩形:两次单调栈
使用rights[n]和lefts[n]两个int数组去遍历存放每一个元素对应的下一个更小,由于最后一个没有下一个更小,所以默认赋值rights都是n,然后左边第一个继续往左同理没有下一个更小就lefts赋初值-1,然后两次遍历完后就可以一个一个求面积更新最大了
2023-05-17 10:24:40
424
原创 下一个更大元素(单调栈通俗易懂)
首先我们需要去用一个map保存在nums2中每一个元素及其对应的下一个更大的元素的值例如:nums1 = [4,1,2], nums2 = [1,3,4,2]在map中会保存:(1,3),(3,4)、通过单调栈的方式实现这一需求,单调栈中存放的是数组nums2的下标值,每一次都去比较当前元素和上一个元素哪一个大,符合大就存到map里面,然后最后使用数组nums1中的值作为map的key一个一个去和map中的vale去找,能找到返回找到的,没有则是-1,因为nums1中的数字和nums中是肯定有一 一 映射的
2023-05-13 15:00:04
575
1
原创 435 无重叠区间(极简贪心+十分好理解)
我们要使用贪心的思想,先将数组以结束时间排序,我们尽可能得去优先选择更早结束的时间,这样留给后面的空间就会变大我们首先预先设定pre是intervals[0][1],表示先记录一下上一次选择的区间是谁,这里表示就是第一个数组元素的结束时间,然后定义cnt表示选择留下的区间数量,一开始是1代表当前区间,然后遍历整个数组如果说intervals[i][0]>=pre,意思就是当前区间的开始时间大于上一个区间的结束时间的话,就说明两个区间并不重叠,那么这两个区间我们就都需要保留,所以cnt++,然后我们更新pre
2023-05-13 11:00:42
671
原创 固定大小的滑动窗口(187. 重复的DNA序列)
Problem: 187. 重复的DNA序列文章目录思路解题方法复杂度Code思路固定大小是10的一个字串,所以只需要一个指针遍历即可,首先用occ Set集合来存储当前位置i到i+10位置的字符串,存入occ,如果存不进去就说明重复出现就将改字符串存入res中最后用一个List转换把res全部存入ans,for循环中i<length()-9就是因为下面的字符串截取是i位置到i+10位置,所以要减去9解题方法描述你的解题方法复杂度时间复杂度:添加时间复杂度, 示例:
2023-05-11 14:47:58
394
原创 树形表的查找方法
1:树形结构比较固定,级别固定(自连接)树形结构不固定:(递归)根找子子找根:数据库查询数据:业务层为childNode填充数据:
2023-04-10 16:25:50
189
原创 ConcurrentHashMap底层
数组 + 链表 + 红黑树正常put数据时,如果数组有位置,放数组上,因为查询效率最高。如果put数据时,数组的位置上有数据,挂到下面的链表上,查询效率偏低如果put数据时,发现链表很长,查询效率会受到很大的影响,此时会将链表转为红黑树,提升查询效率。
2023-03-26 16:24:14
1049
原创 每日面试题
以"HashSet如何检查重复"为例子来说明为什么要有hashcode:对象加入HashSet时,HashSet会先计算对象的hashcode值来判断对象加入的位置,看该位置是否有值,如果没有、HashSet会假设对象没有重复出现。但是如果发现有值,这时会调用equals ()方法来检查两个对象是否真的相同。如果两者相同,HashSet就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。这样就大大减少了equals的次数,相应就大大提高了执行速度。而抽象类的设计目的,是代码复用。
2023-03-01 20:22:20
762
原创 vue2富文本功能实现的两种方式(v-md-editor+mavon-editor)
【代码】vue2富文本功能实现的两种方式(v-md-editor+mavon-editor)
2023-02-20 14:56:09
1149
原创 使用logstash把mysql同步到es,Kibana可视化查看
Logstash下载地址:https://www.elastic.co/cn/downloads/logstash。
2023-02-09 19:56:26
1924
1
转载 VUE中路由跳转如何传参
原文链接:https://blog.youkuaiyun.com/chenxi_li/article/details/108365779。
2023-01-10 13:26:21
444
原创 报错:Java ClassCastException: xxx cannot be cast to xxx are in unnamed module of loader ‘app‘
【代码】报错:Java ClassCastException: xxx cannot be cast to xxx are in unnamed module of loader ‘app‘
2023-01-09 14:28:38
13931
2
原创 mybatis的association以及collection的用法
注意,只有在做select查询时才会用到这两个标签,都有三种用法,且用法类似。先看如下代码(省略set、get方法):以上是实体类、dao层的设计以及在UserDao.xml中queryById方法的sql语句的编写,因为不论用association的哪种方式,sql语句都是一样的写,不同的只是userMap的写法,所以这里先给出这段代码。User询Card是一对一关系,在数据库中,tb_user表通过外键card_id关联tb_card表。下面分别用association的三种用法来实现queryBy
2023-01-08 14:16:20
5306
原创 Mybatis常用标签讲解
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况:针对最后一条,我们来看一下官方说法:注意 你可以将一个 List 实例或者数组作为参数对象传给 MyBatis,当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中并以名称为键。List 实例将会以“list”作为键,而数组实例的键将是“array”。所以,不管是多参数还是单参数的list,array类型,都可以封装为map进行传递。如
2022-12-31 10:38:13
2110
原创 SpringSecurity学习中遇到的报错
此时我们无法将转为UserDetailDTO,原因很有可能是自己在SpringSecurity配置里面加入了 自定义过滤器配置:
2022-12-22 13:44:18
2202
原创 MyBatis批量插入的五种方式
2:配置yml文件3:公用的User类:二、不同的实现方法1:MyBatis利用For循环批量插入(1)、编写UserService服务类,测试一万条数据耗时情况(2)、编写UserMapper接口(3)、编写UserMapper.xml文件(4)、进行单元测试(5)、结果输出一万条数据总耗时:26348ms(2)、结果输出一万条数据总耗时:24516ms(2)、编写UserMapper接口(3)、编写UserMapper.xml文件(4)、输出结果一万条数据总
2022-12-06 17:21:57
7435
2
原创 Springboot策略模式实现文件上传功能(Windows/Linux本地,oss,cos)
2:application.yml:2.1:腾讯云信息查看:secretId+secretKey在访问密钥里面查看(4):文件上传策略:(5):本地路径上传策略方法实现层:WindowsUploadStrategyImpl:(6):controller层:更新用户头像为例:(7):userInfoService.updateUserAvatar层及其实现:(8):uploadStrategyContext.executeUploadStrategy:(9):抽象上传模板
2022-12-02 16:08:32
1793
4
原创 ElasticSearch中基础API操作
2:建立的客户端后,我们需要先进行索引的创建,查询,删除操作:2.1:创建索引: 响应: 2.3:删除索引: 响应: 3:索引创建好后我们需要将索引里面插入文档数据,包过数据的查询删除等等操作3.1:将数据插入索引: 响应:3.1.1:首先建立一个实体类存放我们要插入的数据类:User#3.1.2:然后向对应的索引中插入数据:这里的步骤分三步:(1):new出索引,并指向我们要插入数据的索引: 3.2:修改索引中数据: 响应: 修改索引中的数据:跟上面类似,
2022-11-27 16:40:40
3555
springboot+vue+element增删改查Demo
2022-05-24
哥你那个排版系统没有给图片啊
2021-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人