- 博客(115)
- 收藏
- 关注
转载 算法与数据结构 -- 链表
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。
2024-11-24 22:42:16
61
原创 数据库事务与事务隔离级别
事务简单说将一串操作看成一个整体,只有当这串操作全部执行成功的时候才成功,只有有一个操作出错就失败,回滚到操作开始之前。这一串操作就是事务。比如张三给李四转账100块这件事有三个步骤,查询张三余额,张三自己账户先扣一百块,然后李四账户获得一百块。如果张三扣款成功,但李四获得一百块失败,那么不是转账失败,凭空损失了100块?或者张三扣款失败,但李四获得一百块成功,那张三不是凭空赚了100块?
2024-11-22 10:08:28
879
原创 算法与数据结构--二分查找
简单说就是每次二分取中间值,然后将中间值与我们要找的值比较,如果比它大就移动左边界到其右侧,如果比它小就移动右边界到其左侧。
2024-10-03 10:15:18
512
2
原创 服务器IP选择
机房IP--像阿里云,腾讯云这些服务器分配的IP都是机房IP,而我们一般手机卡分配的IP则是家庭宽带IP CN2线路--优质线路,中国电信提供的高质量,高稳定性的网络通信服务 SoftBank线路--日本软银线路,中国联通使用的优质线路。Ping0 通过大数据监测IP是否有扫描,爆破,爬虫,对外攻击,发送垃圾邮件,作为木马病毒的C&C服务等行为,以及危险行为的次数和频率来进行风控打分。原生IP是指IP归属地和机器所在地一样,广播IP是指IP归属地和机器所在地不一样。在使用上是一样的,只是归属地不同。
2024-05-02 00:35:01
1141
原创 JWT技术选型以及相关功能的实现
无状态服务是指在处理请求时不存储任何会话信息或状态信息的服务。这意味着每个请求都是独立且相互独立的,服务不会在请求之间保留任何状态。
2024-04-17 17:19:31
753
原创 从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
1417
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
2277
原创 北京某中厂凉经
12.问redis命令,怎么取【get,这个队列】,怎么更新过期时间【我回答可能是set命令,粗了,平时都写代码没有记命令】北京某上市公司给了面试,这也是我的第一个面试,听面试官最后的话大概是挂了。大概回忆一下当时面试的部分内容吧,虽然已经过去一两小时的,而且我属于那种一面完就忘的差不多的鱼的记忆。有一个browser表,请你根据id=123和status=5,将status更新为6。5.手写sql【数据库课在大三,我语法都忘了,这个题答的很不好。4.java中的常见类型【八种基本和引用类型】
2024-03-12 21:46:25
365
原创 数据库概述与SQL
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。多表查询就是指从多张表中查询关联行的数据。连接查询分类内连接:相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名事务简单说将一串操作看成一个整体,只有当这串操作全部做对时才成功,只有有一个环节出错就失败。这一串操作就是事务。
2024-02-12 10:41:49
885
原创 Springboot快速整合MQ
异步调用简单说就是将一件事拆为两部分,把应该立马做完的【基础部分】先做完,然后剩下的事情【bonus】留到后台慢慢完成。举个例子,我们赶ddl的时候,先把必须完成的基础部分先做完提交,然后如果想要继续优化项目在在后面慢慢优化。
2024-02-02 19:37:23
1598
原创 微服务保护Sentinel学习笔记
限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。
2024-01-21 20:28:37
1371
原创 关于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
6086
原创 算法与数据结构--最小生成树算法
图的生成树是它的一颗含有其所有顶点的无环连通子图。【简单说就是所有顶点连接在一起,并且没有环。因此有n个顶点,n-1的边】所有生成树中权值(树中所有边的权重之和)最小的生成树。解决之类问题实际上就是求出最小生成树,并计算它的权值之和。
2024-01-10 10:37:17
611
原创 docker中部署websocket客户端无法连接的坑
原因是设置为host后websocket被映射到127.0.0.1导致出错,通过修改配置文件将其改为0.0.0.0即可。在Docker中部署websocket,设置网络为host,与宿主机共享网络。
2024-01-01 22:55:54
2254
1
原创 算法与数据结构--二叉搜索树与自平衡二叉搜索树
二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。根据插入元素的落点,调整策略分为四种情况,插入元素落入以下4个子树的情况分别对应着四种状态。注:字典的 "member运算" 指的是检查字典中是否存在某个特定的键的操作,即查询操作。A连接左子树的右子树,A称为B的右子树。注:上图的沿路径回溯检查指的是沿插入路径回溯检查。这时候对根结点使用左旋操作。
2023-12-25 17:51:37
837
原创 为什么要用递归以及递归如何书写?
一般的话写函数都是先确定函数的定义与输入,然后按照思路写输出。而递归函数的话我认为要先写思路和定义再写输入。//寻找第一个比根结点小的数是左子树的根结点,//寻找第一个比根结点大与或等于的数即时右子树的根节点i
2023-12-25 11:21:29
642
原创 nacos和gateway部署实践踩的坑
我的微服务项目部署之后,发现不同服务之间无法实现通信,但是我在本地多个服务运行明明运行的很好。后来我进去nacos页面查看各服务的信息,发现各服务对应的ip竟然不是我服务器的ip,而是本地ip/或者说是内网ip。而nacos服务发现的基本逻辑就是根据服务名,然后去nacos拉取对应的ip,然后根据ip请求接口。如果是内网ip,如果不像本地测试一样在同一个内网,则无法通信是正常的。那么怎么解决呢?直接在配置中添加服务注册的ip和端口就可以了。
2023-12-23 16:03:14
1283
原创 算法与数据结构--散列表与哈希算法
符号表可以怎么实现呢?首先我们想到的是结构体数组?但是数组的查找速度,当遍历查找的时候是O(n),当二分查找的时候是O(nlogn)。速度并不高。有没有办法像我们人类的记忆功能一样,给他键,它就立马能给出对应的值。也就是让查找的速度变为O(1)。这时候我们就需要来了解散列技术。无论你给它什么数据,它都能还你一个数字。平均情况下时间复杂度是常数,最坏情况才达到O(n)。
2023-12-22 12:28:54
633
原创 算法与数据结构--特殊有序集的线性时间排序算法
基本思想:统计每个输入元素的个数,然后根据这些计数值重构原数组。使用范围:需要知道元素大小范围,就是最大值是多少。时间复杂度:O(n)
2023-12-22 10:42:51
552
原创 算法与数据结构--哈夫曼树与哈夫曼编码
演示视频:【1】【2】【3】求哈夫曼编码的步骤:1.根据字符及其权值(权值一般是数出现的次数)构造出哈夫曼树2.根据建立好的哈夫曼树求出哈夫曼编码。
2023-12-21 16:42:36
799
原创 算法与数据结构--拓扑排序
给定一幅有向图,将所有的顶点排序,使得所有的有向边均从排在前面的元素指向排在后面的元素,此时就可以。由一系列顶点组成,对于其中的每个顶点都存在一条有向边,从它指向序列中的下一个顶点。一条至少含有一条边,且起点和终点相同的有向路径。由某个顶点指出的边的个数称为该顶点的出度。有向图是由一组顶点和一组有方向的边组成的。指向某个顶点的边的个数称为该顶点的入度。如:指定合理的学习方案。
2023-12-14 10:17:00
546
原创 开发中需要防止用户哪些骚操作(测试鸭通关总结)
对用户刷量行为进行控制(最终会影响的推荐,排行榜之类功能的准确性),可以根据用户 id 或 IP 等维度来保证单用户的浏览量不重复统计来避免刷量。,上传文件的接口,很消耗CPU或者带宽的接口等等。可以通过验证码、限流、限制单账号密码错误次数等方式防止密码暴力破解。可以通过校验码、限制用户浏览条数等方式一定程度上预防爬虫。前后端都需要对用户输入的邮件和手机号用正则表达式进行检查。
2023-12-13 23:17:47
532
原创 算法与数据结构--最短路径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
891
原创 C++优先队列的使用
priority_queue是C++中的容器,实现优先队列。由于底层采用堆实现,所以插入和删除操作的时间复杂度为O(logn),查找队首元素的时间复杂度为O(1)。
2023-11-21 22:46:08
219
原创 C++--STL学习笔记
STL(Standard Template Library,标准模板库),通俗地来讲就是一套与数据结构和算法有关的标准库。【1】vector,list,deque等库定义了数据结构模板类供我们使用。【2】algorithm和numeric库定义了操作数据结构的相关算法【3】functional库中定义了操作数据结构的内置仿函数
2023-11-17 23:24:17
386
原创 Spring Cloud与Spring Cloud Alibaba怎么正确引入依赖版本
我们可以去springcloud alibaba的github仓库中的说明中查找到三个依赖版本的对应关系通过BOM对Spring Cloud与Spring Cloud Alibaba各组件的依赖版本进行控制
2023-11-16 17:31:44
1305
原创 算法与数据结构--前缀和
我们可以在输入的时候计算一下前缀和,也就是第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
338
1
原创 饥饿加载与懒加载的区别
饥饿加载和懒加载的选择取决于具体的应用场景和需求。饥饿加载适合于数据量较小、频繁访问的情况,而懒加载适合于大数据量、稀疏访问的情况。在实际开发中,我们需要根据具体情况选择合适的加载策略,以达到平衡内存占用和性能响应速度的最佳效果。
2023-11-10 19:21:50
565
原创 servlet依赖冲突引起的报错:An attempt was made to call a method that does not exist.
【2】我在网上看到一个这样的解决方案:https://blog.youkuaiyun.com/weixin_40796433/article/details/111881916。要解决这个问题,你需要确保应用程序的类路径中只包含一个兼容的版本的。由于存在多个不兼容的版本,导致了调用失败。【1】报错原因简单说就是不同依赖之间的servlet版本不同。【3】更好的方法是保证项目只包含一个特定的 JAR 包。程序尝试调用了一个不存在的方法。错误提示中还给出了相关的类加载信息,显示了。方法的调用,而该方法实际上并不存在。
2023-11-10 16:48:20
634
原创 怎么设计数据库
但是的话他们也有相同的属性,比如账号,密码,性别,年龄,身份证号等,这时候我们不妨用将这些相同的信息存放在一张用户表中,而其他的信息存放在实体对应的表中。假设不同身份的用户需要记录不同的属性,比如学生有班级,社团,考试成绩;如果你需要比较多的信息,比如身份证号,办理时间,过期时间,身份证人物头像,身份信息,那可以把身份证抽离出来作为对象,而在学生那里设置外键关联其对应的身份证。
2023-11-09 17:52:47
363
3
原创 HTML和CSS入门学习
比较重要的特点就是独占一行,可以调节宽高。不少情况下,元素显示模式都需要进行转化。比如最常见的情况就是span和a这些行内元素标签,它们的大小往往不可以只是按内容大小来,往往都需要进行改变。这时候常常都需要将行内元素转化为行内块元素。所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
2023-11-07 22:40:40
591
原创 springboot实现文件上传和读取
云服务指的就是通过互联网对外提供的各种各样的服务,比如像:语音服务、短信服务、邮件服务、视频直播服务、文字识别服务、对象存储服务等等。当我们在项目开发时需要用到某个或某些服务,就不需要自己来开发了,可以直接使用阿里云提供好的这些现成服务接口就可以了。比如:在项目开发当中,我们要实现一个短信发送的功能,如果我们自己实现,会很繁琐,因为你需要和各个运营商进行对接。而此时阿里云完成了和三大运营商对接,并对外提供了一个短信服务。只需要调用阿里云提供的短信服务,就可以很方便的来发送短信了。
2023-10-18 00:04:28
5317
1
原创 算法与数据结构--堆与堆排序和优先队列
1.堆是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。
2023-10-15 17:58:51
246
原创 spring security学习笔记(二)--授权
例:只有这个user在其对应的role对应的menu表中的perms字段(权限字段)中有sys:student:operation才可以访问。我们知道springboot中有全局异常处理器,当发生异常后会如果没在controller层,service层或者dao层进行处理会向上抛出给全局异常处理器,从而统一返回结果。SpringSecurity也有异常处理机制,我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。
2023-10-01 18:55:47
686
1
空空如也
C语言最底层与硬件打交道函数,如操作系统api的底层实现应该需要用到汇编吧?
2022-12-28
python解释的过程是怎么样的呢?
2022-11-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人