自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis分布式锁

redis redisson 分布式锁 SETNX 的互斥性;利用 ex 避免死锁;释放锁时判断线程标识缺陷:不可重入、无法重试、锁超时失效原理:利用 hash 结构,记录线程标识和重入次数;利用 watchDog 延续锁时间;利用信号量控制锁重试等待缺陷:Redis 宕机引起锁失效问题原理:多个独立的 Redis 节点,必须在所有节点都获取重入锁,才算获取成功缺陷:运维成本高、实现复杂。

2023-02-17 11:12:52 2879

原创 OSS文件上传

OSS文件上传1、输入该网址 https://www.aliyun.com/ ,登录阿里云,没有登录过可以注册(可用支付宝直接扫码登录)5、创建Bucket(桶)(记录Bucket名称,后面会用到)6、可按我这个模板选择,具体详情请参照官方文档。11、记录keyid、keysecret。4、开通对象存储OSS,进入管理控制台。14、测试结果(Postman)9、点击AccessKey管理。10、创建AccessKey。3、点击对象存储OSS选项。8、记录endpoint。15、测试结果(OSS)

2022-10-02 11:08:09 4518 4

原创 springboot项目部署 + vue项目部署

部署一个简单的前后端分离的博客项目springboot项目部署第一步:打包springboot项目(jar包)第二步:将jar(项目的target目录下)包上传到云服务器上(Xftp)第三步:新建nohup.out文件(Xshell)第四步:后台运行jar包nohup java -jar XXX.jar &第五步:打开接口文档看是否成功部署第六步:如果端口的进程被占用:(下面步骤也用于停止项目运行)netstat -nltp | grep XXXXkill -9

2022-04-11 18:07:52 4102 3

原创 springboot操作数据库表的blob字段

太艰难了,终于把它搞定了!1,实体类public class TUser { private String username; private String password; private byte[] headimage; public TUser() { } public TUser(String username, String password, byte[] headimage) { this.username = use

2021-10-12 13:11:40 4940 3

原创 分布式事务解决方案

分布式事务 2PC TCC 可靠消息最终一致性 RocketMQ实现可靠消息最终一致性事务 最大努力通知 seata

2023-02-23 20:38:58 364 1

原创 SSO单点登录 - 多系统,单一位置登录,实现多系统同时登录 学习笔记

单点登录解决的方法就是,当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录, 这个记录里可以说明一下登录的用户是谁,然后把这条记录的 ID 号发送给客户端,客户端 收到以后把这个 ID 号存储在 Cookie 里,下次这个用户再向服务端发送请求的时候,可以带着这个 Cookie ,这样服务端会验证一个这个Cookie 里的信息,看看能不能在服务端这 里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给 客户端。

2023-02-10 21:06:40 3172

原创 oracle学习笔记

oracle中的sql语句和mysql中的sql语句还是有一些不同的,先简单学习一下oracle中的sql语句test2022 :用户名1234:密码test:表空间名称grant resource,connect to test2022:给test2022 用户配置权限resource和connect创建/删除用户需要登录到system用户下操作。eg:3.表的增删改查3.1增eg:table_name 后面的column最好要写上,不要偷懒。eg:删除语句最好带有where,

2022-12-07 17:14:50 336 1

原创 排序学习记录

快排

2022-09-22 16:27:14 76

原创 链表学习记录

链表指针输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。给定一个链表,返回链表开始入环的第一个节点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。解释:从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。

2022-09-21 16:44:23 81

原创 二分查找学习记录

例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]]。如果numbers[mid] > numbers[j],目标值在(mid + 1,j)之间(mid不可能是目标值);输入:arr = [24,69,100,99,79,78,67,36,26,19]

2022-09-20 16:03:48 109

原创 链表内指定区间反转

第二步:将5移到3的前面,即x_next.next=p.next得x_next:5 3 2。第三步:将x_next赋给p.next,即p.next=x_next得p:4 5 3 2。第一步:将3移到5的后面,即x.next=x_next.next得x:3 2。x_next:x.next (一直指向x的next)一次循坏结束后: p:4 5 3 2。

2022-09-14 21:02:30 255

原创 SpringBoot+Mybatis-Plus 数据表字段是关键字的问题解决

SpringBoot+Mybatis-Plus时,如果数据库中表中有字段是关键字,则会报错,如下### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'o

2022-05-18 18:29:31 3664 1

原创 hutool使用

Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有。参考文档: https://blog.csdn.net/qq_35946055/article/details/112257441API:https://apidoc.gitee.com/dromara/hutool/<dependency> <groupId>cn.hutool</groupId>

2022-05-08 15:10:23 2325

原创 lombok简单使用

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。常用注解:@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。@Getter :使用方法同上,区别在于生成的是getter方法。@ToString :注解在类,添加toString方法。@EqualsAndHa

2022-05-08 15:00:23 87

原创 shiro + jwt

不会的先百度shiroApache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。三个核心组件:Subject, SecurityManager 和 Realms.Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操

2022-05-06 17:18:27 107

原创 JAVA设计模式之单例模式

什么是单例模式:单例模式是指在内存中只会创建且仅创建一次对象的设计模式单例模式特点:(1)单例类只能有一个实例。(2)单例类必须自己创建自己的唯一实例。(3)单例类必须给所有其他对象提供这一实例。饿汉式单例/** * @author ln * @date 2022年05月06日 14:23 * 饿汉式单例 * 在类初始化时,已经自行实例化 * 天生线程安全 */public class Hungry { private final static Hungry HUNG.

2022-05-06 16:24:44 450

原创 整合shiro+jwt+redis,实现会话共享

第一步:导入shiro-redis的starter包以及jwt的工具包官方文档:https://github.com/alexxiyang/shiro-redis/blob/master/docs/README.md#spring-boot-starter<dependency> <groupId>org.crazycake</groupId> <artifactId>shiro-redis-spring-boot-starter<.

2022-04-05 09:47:15 2221

原创 mybatis-plus自动生成代码

第一步:引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency> <dependen

2022-04-04 11:11:43 4352 1

原创 数据库复习

1.事务的四大特性(ACID)原子性(Atomicity)事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性(Consistency)执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;隔离性(Isolation)并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;持久性(Durability)一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故

2022-03-31 17:26:58 1217

原创 集合类复习

1.java常见集合(容器)Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Queue、Map这四个接口的实现类,这四个接口将集合分成了四大类,其中Set代表无序的,元素不可重复的集合;List代表有序的,元素可以重复的集合;Queue代表先进先出(FIFO)的队列;Map代表具有映射关系(key-value)的集合,其所有的key是一个Set集

2022-03-29 16:40:21 365

原创 计算机网络复习

1、OSI七层模型与TCP/IP 五层模型OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP五层:物理层、数据链路层、网络层、传输层、应用层OSI七层:(1) 物理层任务:透明地传输比特流。功能:为数据段设备提供传送数据通路传输单位:比特所实现的硬件:集线器,中继器(2) 数据链路层任务:将网络层传输下来的IP数据报组装成帧功能:a. 链路连接的建立、拆除和分离​ b. 帧定界和帧同步​ c.差错检测传输单位:帧所实现

2022-03-25 17:01:52 2568

原创 总结简单算法(4)

总结简单算法(4)参考代码模板:BFS:https://blog.csdn.net/weixin_51304175/article/details/121244300DFS:https://blog.csdn.net/weixin_51304175/article/details/121225556树的搜索:https://blog.csdn.net/weixin_51304175/article/details/121251792Dijkstra:https://blog.csdn.n

2022-01-19 16:29:09 143

原创 总结简单算法(3)

总结简单算法(3)详细代码模板:质数和约数:https://blog.csdn.net/weixin_51304175/article/details/121305477欧拉函数:https://blog.csdn.net/weixin_51304175/article/details/121306626快速幂:https://blog.csdn.net/weixin_51304175/article/details/121562143扩展欧几里得:https://blog.csdn.n

2022-01-17 20:47:14 120

原创 总结简单算法(2)

总结简单算法(2)详细代码模板:单链表,双链表,栈:https://blog.csdn.net/weixin_51304175/article/details/121042708队列,单调栈,滑动窗口:https://blog.csdn.net/weixin_51304175/article/details/121056335KMP:https://blog.csdn.net/weixin_51304175/article/details/121068912Trie:https://bl

2022-01-17 11:11:05 43

原创 总结简单算法(1)

总结简单算法(1)详细代码模板:排序:https://blog.csdn.net/weixin_51304175/article/details/120942524二分:https://blog.csdn.net/weixin_51304175/article/details/120957649高精度:https://blog.csdn.net/weixin_51304175/article/details/120978906前缀和与差分:https://blog.csdn.net/we

2022-01-17 10:57:47 106

原创 路由与交换技术综合复习

脚本:组网1:Multilayer Switch0:int range fa0/23-24channel-protocol lacpchannel-group 6 mode activeexitspanning-tree mode pvstspanning-tree vlan 1 priority 4096exitvlan 90exitvlan 10exitvlan 20exitvlan 30exitvlan 40exitvlan 50exitvlan 60.

2021-12-26 20:29:38 224

原创 路用与交换技术复习

Multilayer Switch0:int range fa0/23-24channel-protocol lacpchannel-group 6 mode activeexitspanning-tree mode pvstspanning-tree vlan 1 priority 4096exitvlan 10exitvlan 20exitvlan 30exitvlan 40exitvlan 90exitint vlan 90ip add 218.50.90..

2021-12-23 21:53:26 368

原创 PacketTracer—Onenet云平台

目标:实现PacketTracer中的设备连接到MCU芯片,并通过MCU微控制器实现数据上传至云平台、通过云平台控制设备、云平台应用搭建等功能。1:进入Onenet官网2:注册登录3:点击首页控制台4:点击旧版5:点击左侧全部产品→多协议接入6:点击TCP透传→添加产品7:设置您的产品名称,其余根据下图进行选择,然后点击确定8:点击立即添加设备9:鼠标放在脚本解析旁的问号上,下载脚本验证工具10:下载后找到sample.lua文件,不需要打开,这个文件就是我们需要的文件

2021-12-11 13:06:04 4241

原创 汇编课程设计——推箱子

推箱子

2021-12-07 11:15:14 3364 2

原创 算法打卡之博弈论

例题:Nim游戏给定 n 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 n。第二行包含 n 个数字,其中第 i 个数字表示第 i 堆石子的数量。输出格式如果先手方必胜,则输出 Yes。否则,输出 No。数据范围1≤n≤105,1≤每堆石子数≤109输入样例:22 3输出样例:Yes答案:import java.io.Buff

2021-11-30 20:05:24 219

原创 算法打卡之容斥原理

例题:能被整除的数给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm。请你求出 1∼n 中能被 p1,p2,…,pm中的至少一个数整除的整数有多少个。输入格式第一行包含整数 n 和 m。第二行包含 m 个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤10910^9109输入样例:10 22 3输出样例:7答案:import java.io.BufferedReader;import java.io.InputStr

2021-11-29 21:34:36 186

原创 手撕RSA加密算法

RSA加密算法(思路):1:选择两个大素数p,   q(p,q需严格保密,一般在100位以上)      实例:设p  =  47,  q  =  71(计算方便所以举简单数字的例子)2:计算n  =  p  *  q,  r  =  (p  -  1)(q  -  1)    &n

2021-11-29 19:50:42 401

原创 算法打卡之组合数

例题1:求组合数 I给定 n 组询问,每组询问给定两个整数 a,b,请你输出 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a 和 b。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤10000,1≤b≤a≤2000输入样例:33 15 32 2输出样例:3101答案:import java.io.BufferedReader;import java.io.InputStreamReader;public class Main

2021-11-28 13:23:35 292

原创 扩展欧几里得算法

例题1:扩展欧几里得算法给定 n 对正整数 ai,bi,对于每对数,求出一组 xi,yi,使其满足输入格式第一行包含整数 n。接下来 n 行,每行包含两个整数 ai,bi。输出格式输出共 n 行,对于每组 ai,bi,求出一组满足条件的 xi,yi,每组结果占一行。本题答案不唯一,输出任意满足条件的 xi,yi 均可。数据范围1≤n≤105,1≤ai,bi≤2×109输入样例:24 68 18输出样例:-1 1-2 1答案:import java.io.Buffer

2021-11-27 21:21:16 518

原创 算法打卡高斯消元

例题1:高斯消元解线性方程组输入一个包含 n 个方程 n 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。下图为一个包含 m 个方程 n 个未知数的线性方程组示例:输入格式第一行包含整数 n。接下来 n 行,每行包含 n+1 个实数,表示一个方程的 n 个系数以及等号右侧的常数。输出格式如果给定线性方程组存在唯一解,则输出共 n 行,其中第 i 行输出第 i 个未知数的解,结果保留两位小数。如果给定线性方程组存在无数解,则输出 Infinite group solution

2021-11-26 21:57:05 41

原创 算法打卡之快速幂

例题1:快速幂给定 n 组 ai,bi,pi,对于每组数据,求出的值。输入格式第一行包含整数 n。接下来 n 行,每行包含三个整数 ai,bi,pi。输出格式对于每组数据,输出一个结果,表示的值。每个结果占一行。数据范围1≤n≤100000,1≤ai,bi,pi≤2×109输入样例:23 2 54 3 9输出样例:41答案:import java.io.BufferedReader;import java.io.InputStreamReader;publ

2021-11-26 15:59:33 634

原创 动态规划中其它DP问题

区间DP例题: 石子合并设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到 4 5 2, 又合并 1,2 堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=

2021-11-24 19:06:34 882

原创 动态规划中线性DP问题

例题1:数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数 n,表示数字三角形的层数。接下来 n 行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个整数,表示最大的路径数字和。

2021-11-23 21:17:29 59

原创 打卡贪心算法

Huffman树例题:合并果子在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次

2021-11-21 19:42:26 138 4

原创 贪心算法区间问题

例题1:区间选点给定 N 个闭区间 [ai,bi] ,请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数 N,表示区间数。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2答案:import java.io.Buf

2021-11-21 16:17:26 559

空空如也

空空如也

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

TA关注的人

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