自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 资源 (2)
  • 收藏
  • 关注

原创 分布式调度XXL-JOB

某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总以上场景就是任务调度所需要解决的问题任务调度是为了自动完成特定任务,在约定的特定时刻去执行任务的过程XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。

2024-09-10 14:50:31 1171

原创 RabbitMQ

RabbitMQ 使用场景:先执行紧要的操作,之后将消息发送到队列,由其他相关服务读取并慢慢执行。在 RabbitMQ 控制台配置用户和对应的 exchange、queue:SpringAMQP 如何收发消息?引入spring-boot-starter-amqp 依赖配置 rabbitmq 服务端信息利用 RabbitTemplate 发送消息利用 @RabbitListener 注解声明要监听的队列,监听消息。

2024-09-10 14:31:39 1148

原创 【代码随想录】动态规划

如果现在有从头走到台阶 n-2 和台阶 n-1 需要的最小花费为 dp[n-2] 和 dp[n-1],那么走到台阶 n 的最小花费为:dp[n]=min(dp[n-2]+cost[n-2], dp[n-1]+cost[n-1])所以,当 n=0,n=1,n=2 二叉搜索树的数量都已知时,可以推断出 n=3 时二叉搜索树的数量,就是三种情况的和。因此,可以得出递推公式:dp[i][j]=dp[i-1][j]+dp[i][j-1]。n = 3 时,有 3 种走法:1+1+1,1+2,2+1。

2024-09-07 10:01:43 691 1

原创 【代码随想录】贪心算法

注意:贪心算法没有必要去严格证明局部最优能得出全局最优,感觉能行写代码就是了。而且贪心算法的题目只有一个基本思想,没有统一解法,都去证明会很费劲。

2024-05-23 23:35:31 971

原创 【代码随想录】回溯

每收集完一次结果时,都要移除末尾元素,向其中添加新元素。比如:[1, 2] ➡ [1, 3] 要先移除 2,再添加 3,所以适合用 LinkedList 存储路径。

2024-05-23 23:34:48 850

原创 【代码随想录】二叉树

【代码】【代码随想录】二叉树。

2024-05-23 23:33:43 286

原创 【代码随想录】栈与队列

PriorityQueue 的底层是大根堆或小根堆,插入、删除元素时能够自动调堆,将最大 / 最小元素一直保持在队首。默认是小根堆,创建 PriorityQueue 时可以指定比较器来构建大根堆或其他调堆规则。保证队头是最大元素的索引。

2024-05-23 23:31:26 334

原创 【代码随想录】双指针

快慢指针解法:先统计两个链表的长度,如果两个链表的长度不一样,就让链表长的先走,直到两个链表长度一样,这个时候两个链表再同时每次往后移一步,看节点是否一样,如果有相等的,说明这个相等的节点就是两链表的交点,否则如果走完了还没有找到相等的节点,说明他们没有交点,直接返回 null。(关于上面结论的证明在这篇文章:https://blog.csdn.net/Claffic/article/details/129431980)在本解法中,去重操作统一交给了 Set 集合,执行用时较长,但能过,且省去许多考虑。

2024-05-23 23:27:20 866

原创 【代码随想录】字符串

【代码】【代码随想录】字符串。

2024-05-23 23:26:44 116

原创 mybatis-plus 基本使用

首先,pom.xml 中添加MyBatis-Plus的依赖</</</</

2024-04-26 20:30:24 254

原创 Java 数据类型转换

注意事项:对于 Boolean.parseBoolean() 方法,只有字符串 “true”(忽略大小写)会被转换为true,其他任何值(包括"false")都会被转换为 false。数组:虽然数组本身没有重写 toString() 方法,但 Java 提供了 Arrays 类,该类的静态方法 toString()可以将数组转换为字符串。集合框架中的类(如 List、Set、Map 的实现类)通常也重写了 toString() 方法,以提供集合内容的字符串表示。String ➡ 包装类型 Integer。

2024-04-09 20:05:14 466

原创 Java 双端队列

由于 Deque 是一个双端队列,它既可以作为队列使用(遵循 FIFO 先进先出原则),也可以作为栈使用(遵循 LIFO 后进先出原则)First():移除并返回双端队列的第一个元素,若队列为空,返回 null。contains(Object o):如果队列包含指定元素,返回 true。Last():移除并返回队列的最后一个元素,若队列为空,返回 null。Last():返回此队列的最后一个元素,若队列为空,返回 null。First():返回队列的第一个元素,若队列为空,返回 null。

2024-04-09 11:05:53 362

原创 Java 中 String 的常用方法

(1)连接 List 集合中的元素。构造方法(new 出来)(2)连接数组中的元素。

2024-04-07 21:45:59 785

原创 【代码随想录】哈希表

为什么用下面的代码代替 equals() 方法来判断两个 Map 的内容是否相等时,会有一个测试用例不通过?用了哈希表,时间超限,据说用排序+双指针思路简单且可行,后面刷到双指针的题再完成这个方法的题解。跟三数之和一样,也是排序+双指针,刷到双指针再做。思路:将四个数组分为两组处理。

2024-04-06 21:08:00 709

原创 Java 元素排序(数组、List 集合)

List 集合中的元素是 Integer、Float、Double、String 类型时,都可以使用 Collections.sort() 来对元素进行排序。可以先将数组元素存入 List 集合,然后集合元素逆序,最后将集合元素写回原数组。(List 集合元素逆序的讲解在下面)Collections.sort() 默认对元素进行升序排序,若需要降序排序,就需要提供一个比较器。

2024-04-06 16:57:19 501

原创 Java 读取用户输入

使用 next() 或 nextLine()之前通常需要考虑是否需要用 nextLine() 来消耗掉换行符,nextInt()、nextFloat()、nextDouble() 则无需考虑。注意:如果之前调用了 nextInt() 或其他读取数值类型的方法,而没有先调用 nextLine() 来消耗掉换行符,next() 可能会立即返回,相当于在控制台输入时直接回车。

2024-04-06 14:50:24 489

原创 Java 中的 List 集合

List 是 Java 集合框架中的一个接口,它表示一个有序的集合(序列),允许存储重复的元素。List 接口提供了许多方法来操作列表中的元素。

2024-04-05 20:14:28 798

原创 Java 中的 Set 集合

boolean add(E e):向集合中添加指定的元素。如果集合已包含该元素,则添加操作不会改变集合,并返回 false。如果集合包含指定的元素,则移除它,并返回 true。否则,返回 false。extends E> c):将指定集合中的所有元素添加到此集合中。> c):移除此集合中那些也包含在指定集合中的所有元素。> c):如果此集合包含指定集合中的所有元素,则返回 true。boolean contains(Object o):如果此集合包含指定的元素,则返回 true。此调用返回后,集合将为空。

2024-04-05 19:55:49 220

原创 Java 中的 Map集合

在 Java 中,Map 接口是 Java 集合框架的一部分,它存储键值对(key-value pairs)。Map 接口有许多常用的方法,用于添加、删除、获取元素,以及检查 Map 的状态。

2024-04-05 17:41:59 798

原创 【代码随想录】链表

另一种解法:先遍历两个链表,得到它们的长度。然后,让长链表的指针先走它们长度差的步数,接着两个指针同时向前遍历,直到它们相遇或都为 null。另一种解法:快慢指针。

2024-04-05 15:58:00 390

原创 【代码随想录】数组

暴力解法,超时,测试用例通过率:18 / 21。

2024-04-03 19:49:49 362

原创 【力扣hot100】128-最长连续序列、283-移动零

由于每个数字只会被遍历一次(无论是添加到HashSet中还是作为序列的起点被检查),所以整个算法的时间复杂度仍然是O(n)。

2024-03-31 21:38:55 197

原创 【力扣hot100】两数之和、字母异位词分组

【49】字母异位词分组。

2024-03-29 22:25:39 209

原创 大事件前端项目开发

需求分析环境准备创建 Vue工程:安装依赖Element-Plus:Axios:Sass(CSS 的语言扩展包):目录调整删除 components下面自动生成的内容在src目录下面新建三个目录 api(存放接口调用的文件)、utils(存放请求工具的JS文件)、views(存放.vue文件)。下面是准备好的 request.js,事先存放在 utils 目录下。将资料中的静态资源(如图片)拷贝到 assets 目录下,其中原本的文件删掉删除 App.vue 中自动生成的内容前端开发步骤用户需要输入用

2024-03-09 20:22:12 615

原创 1.【Element Plus】

Element:是饿了么团队研发的,基于 Vue 3,面向设计师和开发者的组件库。组件:组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等。官网:https://element-plus.org/zh-CN/#/zh-CN准备工作(1) 创建一个工程化的 vue 项目(2) 参照官方文档,安装 Element Plus 组件库(在当前工程的目录下):npm install element-plus --save(3) 在 main.js 中引入 Element Plus 组件库(参照官

2024-03-01 16:31:13 583

原创 3.【Vue3】Vue工程化——整站使用 Vue

把 App.vue 导进来,并且起名为 App。:调用 createApp 函数创建 vue 的应用实例,并链式调用 mount 函数来控制 html 页面的元素,这个元素的 id 就是 index.html 中 div 的 id,所以,vue 会接管默认首页里的这个 div。vue 项目中有一个node_modules目录,里面存放着通过npm下载的vue项目的依赖,其中有一个依赖就是vue,也就是说,在创建项目的时候,已经把依赖下载到本地了,所以导入时就无需再通过网络导入,直接在本地导入就可以了。

2024-02-29 20:02:02 945

原创 2.【Vue3】Vue 基本使用——局部使用Vue

现在需要将 “hello vue3” 这样一个字符串渲染到页面上进行展示。接下来学习如何使用 Vue 来完成该需求。Vue 使用的数据都需要在调用 CreateApp() 函数时,在 {} 中声明。可以在 {} 中写一个 data() 函数,通过 return 返回需要的数据。数据有了之后,需要将数据渲染到页面上。可以在 div 内部声明 h1 标签,在 h1 内部通过插值表达式渲染到页面上进行展示。插值表达式就是两层 {},内部写的是数据的键名。

2024-01-28 23:41:44 1834

原创 1.【Vue3】前端开发引入、Vue 简介

Vue 是一款用于构建用户界面的渐进式的 JavaScript 框架。(官方:https://cn.vuejs.org/)举个例子:购物网站上会展示各种各样的数据,这些数据都不是写死的,需要访问后台接口去获取这些数据,假如我们现在通过 ajax 异步请求拿到了这些数据,那这些数据如何才能展示到页面上呢?此时就可以用 Vue 来处理。Vue 提供了非常便捷的方式,可以根据数据来渲染页面。

2024-01-27 18:24:47 1459 1

原创 7.【SpringBoot3】项目部署、属性配置、多环境开发

项目完成后,需要部署到服务器上。SpringBoot 项目需要经过编译打包生成一个 jar 包(借助打包插件 spring-boot-maven-plugin),再将该 jar 包发送或拷贝到服务器上,然后就可以通过执行来运行 jar 包。服务器的系统可能是 windows、mac、linux。

2024-01-27 00:46:01 1724

原创 6.【SpringBoot3】登录优化-redis

在之前实现的登录接口中,用户登录成功后会生成一个令牌响应给浏览器,之后浏览器访问其他接口时,都要携带该令牌,接受拦截器的检验,如果令牌有效就放行,允许访问后续接口,否则拦截该请求。但是,现在存在一个问题,如果密码泄露了,修改密码再次登录时,原有令牌是应该失效的,现在的代码还做不到这一点,拿着修改密码之前的令牌仍然可以访问其他接口,这显然是不合理的。如何才能做到让令牌主动失效呢?此时就需要用到 redis。

2024-01-26 18:45:09 1069 2

原创 5.【SpringBoot3】文件上传

在用户更换头像或发布文章时,需要携带一个图片的 url 地址,该 url 地址是当用户访问文件上传接口,将图片上传成功后,服务器返回的地址。所以,后台需要提供一个文件上传接口,用来接收前端提交的文件数据,并且返回文件的访问地址。这三个要素满足后,用户就可以选择要上传的文件,点击提交按钮,最终把文件内容提交给服务器。当服务器接收到该请求后,如果服务器中的代码是使用 SpringMVC 框架编写的,我们就可以在方法上声明一个 MultipartFile 类型的参数,用来接收上传的文件内容。

2024-01-25 17:31:12 2194

原创 4.【SpringBoot3】文章管理接口开发

对于 Article 实体类中的 state 属性,前面所学的知识已经不能完成对它的校验了。此时,需要借助 Validation 完成自定义校验。

2024-01-24 17:33:03 1082

原创 3.【SpringBoot3】文章分类接口开发

数据库表字段和实体类属性:在数据库表中,create_user 来自于 user 表中的主键 id,是用来记录当前文章分类是哪个用户创建的,有了这个字段,将来用户在查看、修改、删除时就只能操作自己创建的分类。

2024-01-23 17:25:00 1354

原创 2.【SpringBoot3】用户模块接口开发

JWT 全称:JSON Web Token,即用于 web 领域的基于 json 格式的令牌(https://jwt.io/)定义了一种简洁的、自包含的格式,用于通信双方以 json 数据格式安全的传输信息。上面是一个 JWT 令牌字符串,通过两个将字符串分成了三部分,每个字串对应 token 令牌中的一部分。第一部分: Head(头),是由一段 json 字符串编码得来,该 json 字符串记录两个信息,alg 是加密算法(防篡改),type 是令牌类型。第二部分: Payload(有效载荷)

2024-01-21 22:26:39 1739

原创 1. SpringBoot3 基础

在 SpringBoot 之前,通过 Spring Framework 整合各种子项目,来构建 Spring应用程序:传统方式构建 spring 应用程序,需要挨个导入依赖,项目配置繁琐:SpringBoot 的特性,用于简化开发:(1) 起步依赖:本质上就是一个 Maven 坐标,整合了完成一个功能需要的所有坐标。

2024-01-17 18:32:01 1081

原创 刷新环境变量,不用重启电脑

在“我的电脑”->“属性”->“高级”->“环境变量”中编辑环境变量后,如何在不重启电脑的情况下,使环境变量立刻生效呢?(1) win+r,cmd 打开命令行。(3) 关闭命令行,重新打开。(test可以是任意字符(串))此时环境变量修改已经生效。

2024-01-14 00:03:41 2229 2

原创 4. SSM 整合

前面已经学习了 Mybatis、Spring 和 SpringMVC 三个框架,现在要把这三个框架整合在一起,完成业务功能开发,整合流程如下:(1) 新建 module(2) 选择模板(3) module 名称和路径(4) 补充项目结构(5) 新建必要的包Spring 配置类不检查 bean 自动装配的语法:如果后端返回的数据类型很杂乱,前端解析数据会很麻烦。所以后端要能够返回统一的数据类型。所以就想能不能将返回结果的数据进行统一,思路为:创建结果模型类,将返回的结果数据封装到 data 属性中;将

2023-03-09 23:22:03 485 1

原创 3. SpringMVC Rest 风格

REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格。传统方式一般是一个请求 url 对应一种操作,这样做不仅麻烦,也不安全,因为会程序的人读了请求 url 地址,就大概知道该 url 实现的是什么操作。查看 REST 风格的描述,会发现请求地址变简单了,并且只看请求 URL 并不能轻易猜出该 URL 的具体功能。但是问题也随之而来,一个相同的 url 地址既可以是新增也可以是修改或者查询,该如何区分该请求到底是什么操作呢?

2023-02-13 13:38:31 648

原创 2. SpringMVC 请求与响应

在 UserController 和 BookController 中,都有 save 方法,若两者的请求映射路径都为 “/save”,则两者的访问路径就都成了 http://localhost/save,会冲突。问题是解决了,但是每个方法前面都需要进行修改,写起来比较麻烦而且还有很多重复代码,如果 “/user” 后期发生变化,所有的方法都需要改,耦合度太高。简单数据类型一般处理的是参数个数比较少的请求,如果参数比较多,那么后台接收参数的时候就比较复杂,这个时候可以使用 POJO 数据类型(实体类)。

2023-02-12 20:53:16 616 2

原创 1. SpringMVC 简介

SpringMVC 与 Servlet 功能等同,均属于 Web 层开发技术。SpringMVC 是 Spring 框架的一部分。SpringMVC 简介请求与响应REST 风格SSM 整合(注解版)拦截器SpringMVC 是处于 Web 层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后进行处理,并将处理的结果响应给前端,所以如何处理请求和响应是 SpringMVC 中非常重要的一块内容。

2023-02-11 19:32:34 734

Linux_C函数库参考手册.pdf

包含了有关Linux的C语言函数用法,解析超详细,还配有实例和运行结果。特别适合小白使用,遇到不懂使用方法的函数可以直接查询,避免全网搜浪费时间。

2020-05-27

空空如也

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

TA关注的人

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