自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (3)
  • 收藏
  • 关注

原创 (1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。

将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,为空时,将非空表的剩余元

2020-07-28 22:25:30 20232 5

原创 9、SpringBoot日志

Java 日志

2022-06-07 14:19:38 298 1

原创 7、数据权限注解

数据权限,一个注解搞定!注意点占位符sql.append(String.format(" OR %s.dept_id in(select rd.dept_id from sys_role_dept rd where rd.role_id=%d)", dataScope.deptAlias(), role.getRoleId()));mysql中的函数mysql中find_in_set()函数的使用https://www.cnblogs.com/xiaoxi/p/5889486.html搭建项

2022-05-31 17:00:25 651

原创 自定义限流注解

Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了~代码:https://github.com/1040580896/rate_limiter1. 准备工作首先我们创建一个 Spring Boot 工程,引入 Web 和 Redis 依赖,同时考虑到接口限流一般是通过注解来标记,而注解是通过 AOP 来解析的,所以我们还需要加上 AOP 的依赖,最终的依赖如下:<dependency> <groupId>org.spri.

2022-05-29 17:12:36 612

原创 动态切换数据源

思路自定义一个注解 @DataSource,将来可以将该注解加在 service 层方法或者类上面,表示方法或者类中的所有方法都使用某一个数据源。对于第一步,如果某个方法上面有 @DataSource 注解,那么就将该方法需要使用的数据源名称存入到 ThreadLocal。自定义切面,在切面中解析 @DataSource 注解,当一个方法或者类上面有 @DataSource 注解的时候,将 @DataSource 注解所标记的数据源存入到 ThreadLocal 中。最后,当 Mapper 执行的

2022-05-23 11:24:12 2607

原创 Mysql-索引使用规则

使用规则最左前缀法则如果索引关联了多列(联合索引),要遵守最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。范围查询联合索引中,出现范围查询(<, >),范围查询右侧的列索引失效。可以用>=或者<=来规避索引失效问题。索引失效情况在索引列上进行运算操作,索引将失效。如:explain select * from tb_user where substring(phone, 10, 2)

2022-05-11 20:02:33 831

原创 Mysql-索引分类

索引分类分类含义特点关键字主键索引针对于表中主键创建的索引默认自动创建,只能有一个PRIMARY唯一索引避免同一个表中某数据列中的值重复可以有多个UNIQUE常规索引快速定位特定数据可以有多个全文索引全文索引查找的是文本中的关键词,而不是比较索引中的值可以有多个FULLTEXT在 InnoDB 存储引擎中,根据索引的存储形式,又可以分为以下两种:分类含义特点聚集索引(Clustered Index)将数据存储

2022-05-10 21:01:02 343

原创 mysql-性能分析

性能分析查看执行频次查看当前数据库的 INSERT, UPDATE, DELETE, SELECT 访问频次:SHOW GLOBAL STATUS LIKE 'Com_______'; 或者 SHOW SESSION STATUS LIKE 'Com_______';例:show global status like 'Com_______'慢查询日志慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志。MySQL的慢查询日志默

2022-05-10 20:59:12 126

原创 Mysql索引结构(2)

索引结构索引结构描述B+Tree最常见的索引类型,大部分引擎都支持B+树索引Hash底层数据结构是用哈希表实现,只有精确匹配索引列的查询才有效,不支持范围查询R-Tree(空间索引)空间索引是 MyISAM 引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少Full-Text(全文索引)是一种通过建立倒排索引,快速匹配文档的方式,类似于 Lucene, Solr, ES索引InnoDBMyISAMMemoryB+Tre

2022-05-09 21:16:06 485

原创 MySQL存储引擎

进阶篇存储引擎MySQL体系结构:存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引擎也可以被称为表引擎。默认存储引擎是InnoDB。相关操作:-- 查询建表语句show create table account;-- 建表时指定存储引擎CREATE TABLE 表名( ...) ENGINE=INNODB;-- 查看当前数据库支持的存储引擎show engines;InnoDBInnoDB 是一种兼顾高可靠性和高性

2022-05-09 11:46:53 200

原创 P8项目大全

2022-02-12 18:29:53 105

原创 Mybatis-Plus详解

Mybatis-Plus分页1.创建项目2.引入依赖3.添加配置4.添加分页插件5.controller层6.service层7.mapper8.运行结果1.创建项目创建一个springboot项目2.引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-we

2021-10-31 14:31:56 750

原创 Quertaz的基本使用

Quertaz的基本使用Quertaz的基本使用说明1.简单介绍2.导入依赖3.添加任务4.构建配置类Quertaz的基本使用说明创建的是SpringBoot项目1.简单介绍Quartz的三大核心组件调度器:Scheduler。任务:JobDetail。触发器:Trigger,包括 SimpleTrigger 和 CronTrigger。(1)Job(任务):是一个接口,有一个方法 void execute(JobExecutionContext context) ,可以通过实现该接口

2021-10-29 21:23:51 226

原创 SpringBoot日志处理

日志处理引言​ springboot框架 集成日志 logback 日志​ Logback是由log4j创始人设计的又一个开源日志组件。目前,logback分为三个模块:logback-core,logback-classic和logback-access。是对log4j日志展示进一步改进!​ 总结: logback 也是一个开源日志组件 和 log4j作用一致 都是用来生成日志 logback更加轻量日志的级别[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

2021-10-25 21:51:26 116

原创 SpringBoot统一时间处理

1、@JsonFormat注解使用@JsonFormat注解格式化时间,应该算是一个基本操作了,大部分开发者都应用此种方式,简单方便。public class OrderInfo { @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @JsonFormat(locale = "zh", timezon

2021-10-24 09:44:11 755 1

原创 SpringBoot自定义参数解析器

SpringBoot自定义参数解析器我们都知道SpringMvc的Controller的方法上可以接收各种各样的参数,比如**HttpServletRequest或HttpServletResponse*,各种注解@RequestParam、@RequestHeader、@RequestBody、@PathVariable、@ModelAttribute,这些参数是从哪里获取的?这些参数都是由不同的参数解析器为我们解析出来的,可以解析类也可以解析带注解的类我们可以利用解析器解析自定义的参数(类

2021-10-20 21:14:35 1170

原创 谷歌验证码kaptcha生成工具类

谷歌验证码生成工具类1、引入依赖2、验证码配置类3、controller层4、测试5、目录结构1、引入依赖<!-- google kaptcha依赖 --><dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</artifactId> <version>0.0.9</version></dependency

2021-10-18 20:42:13 764

原创 @Valid和@validated用法与自定义验证注解

@Valid和@validated用法与自定义验证注解@Valid和@validated用法与自定义验证注解引入依赖@Valid用法:注意自定义校验注解:@Validated分组功能:@Valid和@Validated 区别嵌套验证@Valid和@validated用法与自定义验证注解引入依赖<!--validation组件--><dependency> <groupId>org.springframework.boot</groupId> &

2021-10-16 21:18:11 2457

原创 MD5加密

MD5加密 登录功能两次MD5加密用户端:PASS=MD5(明文+固定Salt)服务端:PASS=MD5(用户输入+随机Salt)用户端MD5加密是为了防止用户密码在网络中明文传输,服务端MD5加密是为了提高密码安全性,双 重保险。引入pom.xml 工具包<!-- md5 依赖 --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-c

2021-10-15 16:53:20 196

原创 Springboot统一异常处理

统一异常处理统一异常处理1.开发方式演变2.springboot异常处理3.传统方式开发异常处理3.1**用法**4.前后端分离开发异常处理4.1具体用法统一异常处理1.开发方式演变a.传统方式开发 基于javaweb方式开发​ 项目业务代码 + view 写在一个项目中​ 业务代码+view(jsp、thymeleaf、freemark)b.前后端分离开发 前后端分离 天下​ 前端系统(Vue)​ ajax 异步请求​ 后端系统(java) 接口 controller

2021-10-14 20:16:42 94

原创 JWT的认证原理和与SpringBoot整合

JWTJWT代码1 什么是JWT1.翻译2.通俗解释2 JWT能做什么1.授权2.信息交换3 为什么是JWT3.1 基于传统的Session认证1.认证方式2.认证流程3.暴露问题3.2 基于JWT认证1.认证流程2.jwt优势4 JWT的结构是什么1.令牌组成2.Header3.Payload4.Signature签名目的信息安全问题5.放在一起5 使用JWT1.引入依赖2.生成token3.根据令牌和签名解析数据4.常见异常信息6 封装工具类7 整合springboot1.搭建环境2.开发数据库3.开发

2021-10-11 21:38:34 3200

原创 39.删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II难度中等676收藏分享切换为英文接收动态反馈存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]/** * Definition for singly-linked list

2021-10-09 20:24:13 56

原创 38.合并区间

56. 合并区间难度中等1036收藏分享切换为英文接收动态反馈以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

2021-10-08 18:42:03 65

原创 37.二叉树的前序遍历

144. 二叉树的前序遍历难度简单610收藏分享切换为英文接收动态反馈给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]递归/** * Definitio

2021-09-27 19:44:15 77

原创 36.删除链表的倒数第 N 个结点

第21天19. 删除链表的倒数第 N 个结点难度中等1475收藏分享切换为英文接收动态反馈给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。**进阶:**你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]遍历/** * Definition for sing

2021-09-26 21:12:39 51

原创 35.8. 字符串转换整数 (atoi)

第20天8. 字符串转换整数 (atoi)难度中等1164收藏分享切换为英文接收动态反馈请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到

2021-09-25 21:46:21 77

原创 34. 两数相加

2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9

2021-09-24 20:01:46 58

原创 33.x 的平方根

第19天69. x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 二分(二分) O(logx) 二分出最大的 y,满足 y2≤x。则 yy 就是答案。时间复杂度分析:二分的时间复杂度是 O(l

2021-09-23 20:59:43 55

原创 32.二叉树中的最大路径和

124. 二叉树中的最大路径和难度困难1226收藏分享切换为英文接收动态反馈路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTTDvoGB-1632317115808)(/Users/xiaoka

2021-09-22 21:25:30 119

原创 31.爬楼梯

70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?**注意:**给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶斐波那契数列class Solution {

2021-09-15 21:44:01 46

原创 30.重排链表

第23天143. 重排链表难度中等633收藏分享切换为英文接收动态反馈给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln-1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,

2021-09-14 21:30:29 79

原创 MybatisPlus最新代码生成器

目录旧版本1、pom.xml 导入 MyBatis Plus Generator2、启动类最终结构新版本最终效果旧版本创建springboot项目就不用说了根据数据表自动生成实体类、Mapper、Service、ServiceImpl、Controller注意:Mapper文件不会生产在resources目录下会一次性的生成你所选库中的所有表1、pom.xml 导入 MyBatis Plus Generator<dependencies> <dependenc

2021-09-13 19:05:01 857 1

原创 29.二叉树的右视图

199. 二叉树的右视图给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例 1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]示例 2:输入: [1,null,3]输出: [1,3]示例 3:输入: []输出: []BFS/** * Definition for a binary tree node. * public class TreeNode { * int va

2021-09-12 21:22:05 220

原创 28.接雨水

42. 接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9public int trap(int[] height) {

2021-09-11 20:04:28 59

原创 PageHelper的使用

目录PageHelper集成SpringBoot1、创建项目创建一个springboot项目导入相关依赖创建目录结构创建application.yml文件,并添加如下配置2、创建数据库3、相关文件内容User.javaUserDao.javaUserMapper.xmlUserServiceUserServiceImplUserController4、相关参数说明5、index.html6、最终效果PageHelper集成SpringBoot1、创建项目创建一个springboot项目导入相关依赖

2021-09-11 18:47:33 8810

原创 27.最长递增子序列

300. 最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums =

2021-09-10 20:15:04 92

原创 26.反转链表 II

92. 反转链表 II给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]/** * Definition for singly-l

2021-09-09 20:20:34 78

原创 25.二叉树的中序遍历

94. 二叉树的中序遍历难度简单1030给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]递归若当前节点不为空,则递归把左子树所有结点的值放进ans中,再将当

2021-09-09 20:19:34 122

原创 24. 合并K个升序链表

23. 合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:

2021-09-06 20:32:11 106

原创 23.螺旋矩阵

54. 螺旋矩阵难度中等822给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]方向数组class Solution { public

2021-09-05 21:04:01 65

Java面试宝典.pdf

java基础,java线程,java集合,jvm,数据库,各种框架

2021-08-12

linux资料.zip

包含linux的md文档以及以及mycat

2021-08-03

数据结构与实验指导书.pdf

数据结构与实验指导书包括了各种有关于算法设计的习题,并且每章都有详细答案。里面也有考研的习题,适合刚学会算法的人群和打算考研的人。

2020-07-30

空空如也

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

TA关注的人

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