自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java开发规范

原本格式是动词+资源+by+传参,后来进化为Restful API,思想是以资源为中心。

2024-06-13 23:02:50 751

原创 服务器IP选择

机房IP--像阿里云,腾讯云这些服务器分配的IP都是机房IP,而我们一般手机卡分配的IP则是家庭宽带IP CN2线路--优质线路,中国电信提供的高质量,高稳定性的网络通信服务 SoftBank线路--日本软银线路,中国联通使用的优质线路。Ping0 通过大数据监测IP是否有扫描,爆破,爬虫,对外攻击,发送垃圾邮件,作为木马病毒的C&C服务等行为,以及危险行为的次数和频率来进行风控打分。原生IP是指IP归属地和机器所在地一样,广播IP是指IP归属地和机器所在地不一样。在使用上是一样的,只是归属地不同。

2024-05-02 00:35:01 465

原创 Java集合

为什么使用集合而不是数组?因为集合大小可变,提供了各种各样的数据结构,支持各种各样的类型,有各种各样方便使用的API。

2024-04-25 18:01:34 814

原创 JWT技术选型以及相关功能的实现

无状态服务是指在处理请求时不存储任何会话信息或状态信息的服务。这意味着每个请求都是独立且相互独立的,服务不会在请求之间保留任何状态。

2024-04-17 17:19:31 647

原创 怎么保证缓存与数据库的最终一致性?

这里想说的是不管哪种模式读操作都是一样的,这是一种统一的规范:但写操作和同步策略却有不同。

2024-04-07 09:40:17 568

原创 多图总结SpringBoot开发

多图总结SpringBoot开发二.MyBatis

2024-03-25 22:14:23 161

原创 从Spring进化为SpringBoot

底层封装了@Import注解(Import注解中指定了一个ImportSelector接口的实现类)在实现类重写的selectImports()方法,读取当前项目下所有依赖jar包中META-INF/spring.factories、META-INF/spring/org.springframework.boot.autoconfigure.AutoConfigurat ion.imports两个文件里面定义的配置类(配置类中定义了@Bean注解标识的方法)。

2024-03-21 14:11:59 1124 2

原创 汇编语言(Assemble Language)学习笔记

汇编语言由以下3类组成:1.汇编指令(机器码的助记符)2.伪指令(由编译器执行)3.其它符号(由编译器识别)汇编语言的核心是汇编指令,它决定了汇编语言的特性。在汇编语言中,不同的数据类型用来表示不同长度的数据。常见的数据类型,如:BYTE:一个字节(8位)WORD:一个字(16位)DWORD:双字(32位)【也可以是dd】QWORD:四字(64位).dataa dword 1如果数值不确定,可以用?代替值.dataa dword?

2024-03-15 20:18:22 1514

原创 北京某中厂凉经

12.问redis命令,怎么取【get,这个队列】,怎么更新过期时间【我回答可能是set命令,粗了,平时都写代码没有记命令】北京某上市公司给了面试,这也是我的第一个面试,听面试官最后的话大概是挂了。大概回忆一下当时面试的部分内容吧,虽然已经过去一两小时的,而且我属于那种一面完就忘的差不多的鱼的记忆。有一个browser表,请你根据id=123和status=5,将status更新为6。5.手写sql【数据库课在大三,我语法都忘了,这个题答的很不好。4.java中的常见类型【八种基本和引用类型】

2024-03-12 21:46:25 318

原创 MySQL锁

锁主要是用来在并发时候限制数据的相关增删改查操作,进而保证数据的一致性和有效性。

2024-02-21 09:07:55 1151

原创 Springboot快速整合MQ

异步调用简单说就是将一件事拆为两部分,把应该立马做完的【基础部分】先做完,然后剩下的事情【bonus】留到后台慢慢完成。举个例子,我们赶ddl的时候,先把必须完成的基础部分先做完提交,然后如果想要继续优化项目在在后面慢慢优化。

2024-02-02 19:37:23 1087

原创 微服务保护Sentinel学习笔记

限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。

2024-01-21 20:28:37 1315

原创 关于datagrip的一个错误。Unexpected update count received (Actual: 3, Expected: 1).

这是对应的sql语句,原因在于有三行全为 ,where无法指定是哪一行,所以看起来是修改一行数据实则是修改三行(actual:3,expected:1),所以是不可行的。解决方法是加个序号,弄个mainkey。这一行原本的值是,现在我们把它修改为1,114,无名氏,但却报错。这也告诉我们尽量不要设置控制null,每一行数据不要重复,这也是约束存在的意义。

2024-01-20 08:13:21 5039

原创 算法与数据结构--最小生成树算法

图的生成树是它的一颗含有其所有顶点的无环连通子图。【简单说就是所有顶点连接在一起,并且没有环。因此有n个顶点,n-1的边】所有生成树中权值(树中所有边的权重之和)最小的生成树。解决之类问题实际上就是求出最小生成树,并计算它的权值之和。

2024-01-10 10:37:17 502

原创 docker中部署websocket客户端无法连接的坑

原因是设置为host后websocket被映射到127.0.0.1导致出错,通过修改配置文件将其改为0.0.0.0即可。在Docker中部署websocket,设置网络为host,与宿主机共享网络。

2024-01-01 22:55:54 1272

原创 算法与数据结构--二叉搜索树与自平衡二叉搜索树

二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。根据插入元素的落点,调整策略分为四种情况,插入元素落入以下4个子树的情况分别对应着四种状态。注:字典的 "member运算" 指的是检查字典中是否存在某个特定的键的操作,即查询操作。A连接左子树的右子树,A称为B的右子树。注:上图的沿路径回溯检查指的是沿插入路径回溯检查。这时候对根结点使用左旋操作。

2023-12-25 17:51:37 711

原创 为什么要用递归以及递归如何书写?

一般的话写函数都是先确定函数的定义与输入,然后按照思路写输出。而递归函数的话我认为要先写思路和定义再写输入。//寻找第一个比根结点小的数是左子树的根结点,//寻找第一个比根结点大与或等于的数即时右子树的根节点i

2023-12-25 11:21:29 454

原创 nacos和gateway部署实践踩的坑

我的微服务项目部署之后,发现不同服务之间无法实现通信,但是我在本地多个服务运行明明运行的很好。后来我进去nacos页面查看各服务的信息,发现各服务对应的ip竟然不是我服务器的ip,而是本地ip/或者说是内网ip。而nacos服务发现的基本逻辑就是根据服务名,然后去nacos拉取对应的ip,然后根据ip请求接口。如果是内网ip,如果不像本地测试一样在同一个内网,则无法通信是正常的。那么怎么解决呢?直接在配置中添加服务注册的ip和端口就可以了。

2023-12-23 16:03:14 1143

原创 算法与数据结构--散列表与哈希算法

符号表可以怎么实现呢?首先我们想到的是结构体数组?但是数组的查找速度,当遍历查找的时候是O(n),当二分查找的时候是O(nlogn)。速度并不高。有没有办法像我们人类的记忆功能一样,给他键,它就立马能给出对应的值。也就是让查找的速度变为O(1)。这时候我们就需要来了解散列技术。无论你给它什么数据,它都能还你一个数字。平均情况下时间复杂度是常数,最坏情况才达到O(n)。

2023-12-22 12:28:54 584

原创 算法与数据结构--特殊有序集的线性时间排序算法

基本思想:统计每个输入元素的个数,然后根据这些计数值重构原数组。使用范围:需要知道元素大小范围,就是最大值是多少。时间复杂度:O(n)

2023-12-22 10:42:51 519

原创 算法与数据结构--哈夫曼树与哈夫曼编码

演示视频:【1】【2】【3】求哈夫曼编码的步骤:1.根据字符及其权值(权值一般是数出现的次数)构造出哈夫曼树2.根据建立好的哈夫曼树求出哈夫曼编码。

2023-12-21 16:42:36 463

原创 算法与数据结构--拓扑排序

给定一幅有向图,将所有的顶点排序,使得所有的有向边均从排在前面的元素指向排在后面的元素,此时就可以。由一系列顶点组成,对于其中的每个顶点都存在一条有向边,从它指向序列中的下一个顶点。一条至少含有一条边,且起点和终点相同的有向路径。由某个顶点指出的边的个数称为该顶点的出度。有向图是由一组顶点和一组有方向的边组成的。指向某个顶点的边的个数称为该顶点的入度。如:指定合理的学习方案。

2023-12-14 10:17:00 500

原创 开发中需要防止用户哪些骚操作(测试鸭通关总结)

对用户刷量行为进行控制(最终会影响的推荐,排行榜之类功能的准确性),可以根据用户 id 或 IP 等维度来保证单用户的浏览量不重复统计来避免刷量。,上传文件的接口,很消耗CPU或者带宽的接口等等。可以通过验证码、限流、限制单账号密码错误次数等方式防止密码暴力破解。可以通过校验码、限制用户浏览条数等方式一定程度上预防爬虫。前后端都需要对用户输入的邮件和手机号用正则表达式进行检查。

2023-12-13 23:17:47 476

原创 算法与数据结构--最短路径Dijkstra算法

输入第一行包括四个整数N,M,S,E。表示有N个地点,M条道路,CYP当前所在的地点编号为S,要去的地点编号为E。假设他有一张地图,上面有N个点,M条路,他现在在编号为S的地方,想要去编号为E的地方,请你找到最短路径的长度。接下来M行每行两个整数u,v表示地点u到地点v之间有路可以走。学长经常迷路,现在他又遇到问题了,需要求救。输出一个整数表示最短的路线距离。好消息是,每条路的长度都是1。

2023-12-08 20:30:04 767

原创 C++优先队列的使用

priority_queue是C++中的容器,实现优先队列。由于底层采用堆实现,所以插入和删除操作的时间复杂度为O(logn),查找队首元素的时间复杂度为O(1)。

2023-11-21 22:46:08 152

原创 分布式系统的认证授权

以云音乐系统为例

2023-11-21 17:42:28 245

原创 C++--STL学习笔记

STL(Standard Template Library,标准模板库),通俗地来讲就是一套与数据结构和算法有关的标准库。【1】vector,list,deque等库定义了数据结构模板类供我们使用。【2】algorithm和numeric库定义了操作数据结构的相关算法【3】functional库中定义了操作数据结构的内置仿函数

2023-11-17 23:24:17 342

原创 Spring Cloud与Spring Cloud Alibaba怎么正确引入依赖版本

我们可以去springcloud alibaba的github仓库中的说明中查找到三个依赖版本的对应关系通过BOM对Spring Cloud与Spring Cloud Alibaba各组件的依赖版本进行控制

2023-11-16 17:31:44 676

原创 算法与数据结构--前缀和

我们可以在输入的时候计算一下前缀和,也就是第1项的和,第1和2项的和,第1和2和3项的和。然后当计算从i到j之间元素的和时候,我们只需要将第1项到第j项的和减去第1项到第i-1项的和就可以了,这样每次查询的时间复杂度就从O(n)降到了O(1)。当查询的次数很多的时候,时间提升的特别明显。比如计算某个一维度数列从i到j之间元素的和。最开始的想法就是从i遍历到j,将这之间的元素相加。一维前缀和适用于计算某个一维数列某个数到某个数之间的累加和(或者乘积,又或者异或和)之类的。

2023-11-13 20:42:58 295 1

原创 饥饿加载与懒加载的区别

饥饿加载和懒加载的选择取决于具体的应用场景和需求。饥饿加载适合于数据量较小、频繁访问的情况,而懒加载适合于大数据量、稀疏访问的情况。在实际开发中,我们需要根据具体情况选择合适的加载策略,以达到平衡内存占用和性能响应速度的最佳效果。

2023-11-10 19:21:50 384

原创 servlet依赖冲突引起的报错:An attempt was made to call a method that does not exist.

【2】我在网上看到一个这样的解决方案:https://blog.csdn.net/weixin_40796433/article/details/111881916。要解决这个问题,你需要确保应用程序的类路径中只包含一个兼容的版本的。由于存在多个不兼容的版本,导致了调用失败。【1】报错原因简单说就是不同依赖之间的servlet版本不同。【3】更好的方法是保证项目只包含一个特定的 JAR 包。程序尝试调用了一个不存在的方法。错误提示中还给出了相关的类加载信息,显示了。方法的调用,而该方法实际上并不存在。

2023-11-10 16:48:20 504

原创 怎么设计数据库

用户与歌单的关系为一对多,所以要在歌单设置用户外键。同时用音乐与歌单之间是多对多的关系,所以需要新增一张中间表。而搜藏表与音乐是一对多的关系,所以也设置外键。2.音乐的上传、下载、管理:音乐包括音乐信息和音乐文件(.mp3.wma等等格式),能够实现在线播放。音乐与评论属于一对多的关系,音乐与用户也属于一对多的关系。一个用户对应多个音乐,所以在音乐表设置音乐表外键。6.歌单功能,也需要新增一个页面。

2023-11-09 17:52:47 141 3

原创 HTML和CSS入门学习

比较重要的特点就是独占一行,可以调节宽高。不少情况下,元素显示模式都需要进行转化。比如最常见的情况就是span和a这些行内元素标签,它们的大小往往不可以只是按内容大小来,往往都需要进行改变。这时候常常都需要将行内元素转化为行内块元素。所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

2023-11-07 22:40:40 545

原创 springboot实现文件上传和读取

云服务指的就是通过互联网对外提供的各种各样的服务,比如像:语音服务、短信服务、邮件服务、视频直播服务、文字识别服务、对象存储服务等等。当我们在项目开发时需要用到某个或某些服务,就不需要自己来开发了,可以直接使用阿里云提供好的这些现成服务接口就可以了。比如:在项目开发当中,我们要实现一个短信发送的功能,如果我们自己实现,会很繁琐,因为你需要和各个运营商进行对接。而此时阿里云完成了和三大运营商对接,并对外提供了一个短信服务。只需要调用阿里云提供的短信服务,就可以很方便的来发送短信了。

2023-10-18 00:04:28 4787 1

原创 算法与数据结构--堆与堆排序和优先队列

1.堆是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。

2023-10-15 17:58:51 182

原创 spring security学习笔记(二)--授权

例:只有这个user在其对应的role对应的menu表中的perms字段(权限字段)中有sys:student:operation才可以访问。我们知道springboot中有全局异常处理器,当发生异常后会如果没在controller层,service层或者dao层进行处理会向上抛出给全局异常处理器,从而统一返回结果。SpringSecurity也有异常处理机制,我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。

2023-10-01 18:55:47 601

原创 加入PreAuthorize注解鉴权之后NullPointerException报错

记录一次很坑的bug,加入PreAuthorize注解鉴权之后NullPointerException报错,按理来说没有权限应该403报错,但是这个是500报错,原因是因为controller层的service注入失败,然而我去掉注解后service注入成功,并且接口仍然可以正常运行,就很迷。我最后再stackoverflow中发现原来是我的接口的权限修饰符是private,改成public就好了,真的坑!

2023-10-01 15:43:50 225

原创 mysql服务器时间(时区问题)

在studentId没问题的情况我首先怀疑的就是NOW()获取的时间出了问题,后来我想到我的数据库是上海的,时间应该没问题啊,百思不得其解。date去查了系统的时间也没有问题。转念一想,可能mysql本身获取的时间并不是调用系统的时间,我就用查询了一下mysql的时间。可以看到mysql的时间不等于系统时间。所以就对数据库的时区进行更改。本地能查询出来数据,而服务端查询不出来。

2023-09-28 09:43:08 119

原创 跨域问题的原理及解决方法

如果没有进行特殊处理,我们在进行前后端联调的时候游览器会发生报错:这是因为请求被同源策略被阻止,出于安全的考虑,使用XMLHttpRequest对象发起HTTP请求(异步请求)时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的。那什么是同源策略呢?同源策略(Same-Origin Policy)是一个web安全的基础原则。什么是同源呢?指的是从一个地址请求另一个地址,如果协议、主机、端口三者全部一致则不属于跨域注:为什么Postman没有跨域问题呢?

2023-09-26 19:37:15 291

原创 spring security学习笔记(一)--认证

确保你已经建立好一张用户表,并且引入springboot,mybatis,mp,slf4j等基础依赖。即使你有多个角色你也可以将他们的相同信息(如用户名密码登都提取到一张表中)。并根据表编写对应实体类和mapper。 上面是我建立的我的user表,我把学生,督导,老师,辅导员的相同信息提取到一张表中。三.引入依赖四.工具类【1】redis(1)redis使用FastJson序列化配置(2)redis配置类--如果没有redis配置类,不同方法中的redis数据还是不能共

2023-09-21 22:42:29 332

空空如也

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

TA关注的人

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