- 博客(22)
- 收藏
- 关注
原创 并发并行的理解
关于并发和并行这两个概念感觉不大好理解啊,感觉都是在讲同时做多件事情,实际上还是有所区别的,在图书馆试图理解这两个概念,突然有了灵感,那就记录一下自己的理解吧。一段时间内,某一刻开始,同时处理多件任务,从任务的视角看,直至到完成那一刻,任务的处理是没有中断过的,就好像cpu叫了几个分身去处理这些任务。一段时间内,轮流地处理多件任务,从任务的视角看,任务的处理是有中断过一小段时间的。
2024-07-14 16:55:04
102
原创 关于关闭防火墙后docker启动不了容器
还真是因为关闭了防火墙,后来我重新开启防火墙,容器启动成功。上网搜索了一下说是什么关闭防火墙以后,那些网络规则被破坏不可用了,需要设置规则。使用最后一定要重启docker!一开始真不知道是什么问题,于是镜像重新拉取重新安装,最后都把虚拟机快照恢复了。结果可以了,于是我就想是不是我刚刚关闭了防火墙导致。于是我立马又去把防火墙关了,然后再去启动。反复检查了是否运行,端口等一系列细节的操作,结果都不行。可以操作reids了,可是没想到另一个问题又出现了,没办法启动容器了。于是去linux关闭了防火墙。
2024-06-24 15:06:37
323
原创 JWT令牌工具类(令牌生成与令牌解析)
JWT令牌工具类可以直接复制代码,调用方法即可,记得初始化密钥和令牌有效期,对于判断令牌解析结果,捕获异常并处理就行了。
2024-04-20 21:18:52
231
原创 关于过滤器和拦截器
主要用于在Spring框架中对请求进行拦截和处理,如权限校验、日志记录等。主要用于对请求和响应进行预处理和后处理,如编码设置、请求参数的校验、跨域处理等。如果需要在Servlet容器级别对所有请求和响应进行统一的预处理和后处理,那么过滤器是一个很好的选择。如果需要在Spring MVC框架中对特定的请求路径或方法进行拦截和处理,那么拦截器更为合适。拦截器的配置则通常在Spring MVC的配置文件中进行,与Spring框架紧密集成。过滤器的优先级大于拦截器的优先级,请求先经过过滤器才到拦截器,响应则相反。
2024-04-20 21:08:36
349
原创 哈夫曼树(最优树)与哈夫曼编码
利用给出的数构造哈夫曼树:将数字排序,取出最小与次小的数构造一棵二叉树(从序列中去掉取出的数),根为两个节点的和,把和放回序列中排序,直到序列为空。在哈夫曼树的基础上,以左走为0,右走为1,可以得出每一个叶子节点的哈夫曼编码。
2024-04-17 12:19:15
139
1
原创 线索二叉树
给一颗二叉树画出前序中序后序线索二叉树,也就是找叶子节点前驱与后继(因为根节点左右都来存储孩子了,所以只需要找叶子节点的)。**中序线索二叉树:**可以找到下一棵树,也找得到上一棵树,所以可求中序前驱与后继。**先序线索二叉树:**可以找到下一棵树,而找不到上一棵树,所以可求先序后继。**后序线索二叉树:**可以找到上一棵树,而找不到下一棵树,所以可求后序前继。
2024-04-17 11:47:21
178
1
原创 关于类图中各种关系的理解(附加Java代码)
这里箭头指向 Address 类,表示 Student 类与 Address 类之间存在关联关系,并且 Student 类拥有 Address 类的实例。箭头指向 University 类,表示 Department 类是 University 类的一部分,形成聚合关系。箭头指向 Computer 类,表示 CPU 类是 Computer 类的一个组成部分,形成组合关系。在上面的例子中,Student 类和 Address 类之间存在关联关系,因为一个学生有一个地址。,表示一个类是另一个类的特殊类型。
2024-04-15 13:40:39
1023
1
原创 关于@Mapper注解为何写在Mapper接口文件中
@Mapper放在接口上是因为这个接口是MyBatis用于生成动态代理实现类的契约,而@Service放在实现类上是因为这个实现类包含了业务逻辑的具体实现。虽然两者都是用于将对象交给Spring容器管理,但它们的应用场景和背后的机制是不同的。
2024-04-14 23:51:13
429
1
原创 关于项目分层解耦与IOC&DI
之前在处理请求与响应时,我们接收客户端的请求,调用数据库或者接口获取到需要的数据时,逻辑处理返回给客户端。我们都知道Java是面向对象编程,但是我们的代码都写在一个类中,没有遵守面向对象七大原则中的单一职责原则,分工不明确,非常不利于后期的修改维护与拓展。举个例子,我们需要对不同用户在性别这个属性的值上显示男女或男士女士,但是我们现在修改的话,会有很多重复的代码不能复用导致产生很多冗余的代码。所以我们需要把代码按照一定的逻辑进行分层。
2024-04-14 02:19:03
667
1
原创 关于接收前端传回的JSON格式数据在转为类实例时的报错
果然是我在User类中写了一个有参构造器,编译器就不能给我默认生成一个无参构造器了,而创建者之一就是需要无参构造器,所以当然报错。我立马检查属性有没有写错,折腾了好久都没解决,于是查资料发现是由于Spring框架在尝试将HTTP请求体中的JSON数据转换为。类没有创建者(creators),比如默认的构造函数,因此Jackson库不能从对象值中反序列化它。具体来说,错误消息指出。最后把构造器删除后成功运行。
2024-03-29 22:41:27
431
1
原创 算法之广度优先搜索
广度优先算法适用于遍历无向图,可以按照每个节点被发现的顺序,不重复地进行遍历;还有就是一般题目需要查找最短路径时,也可以用广度优先搜索来解决,因为它是从当前层开始一层一层遍历,也就是可以找到达目标点的最短路径(两点间直线最短)。其实这两种用法区别不大,如果给遍历无向图加以一个终止条件,也就是寻找最短路径。
2024-03-23 15:32:42
555
原创 数据结构之树状数组
适合用来求某段区间的和,这里或许有疑惑求某一段区间和,那么用前缀和算法就好了啊,为什么还要学树状数组,因为树状数组相较于前缀和,它可以动态求和,也就是说给定我们一个数组,如果问我们某一区间和是多少,我们可以很快用前缀和解决,但是如果它让我们把索引为3,5,9的数值都加上2,再询问某一段区间和时,用前缀和就很费力了,每一次修改数组的值,都需要重新更改该数后面所有数,如果修改的次数很大可想而知时间复杂度得上几个台阶,但是树状数组可以比较快速解决。
2024-03-20 23:47:04
415
1
原创 关于VMware虚拟机安装Centos网络连接失败的问题
后来在网上找解决方法的时候,无意间发现在虚拟网络编辑器我的NAT模式下DHCP居然不是已开启,我就猜应该就是这个问题了。然后我启用以后果然成功了。最后点击右上角的关机标志,再点网络连接那里,点击连接,最后打开火狐浏览器,输入网址测试,成功获取响应。可以看到我的NAT模式下DHCP没有开启,接下来点击更改设置。今天在虚拟机上安装好Centos系统后发现一直连接不了网络。一直显示连接失败,我于是又换了桥接模式结果还是连接失败。看到我并没有勾选使用DHCP服务。点击菜单栏编辑,虚拟网络编辑器。
2024-03-20 22:43:50
193
1
原创 算法之归并(分治)
归并排序是一个时间复杂度nlogn的算法,效率可以说是非常高了,但是在java中Arrays给我们提供的方法里面也有一个排序方法,底层用的是快速排序,时间复杂度可以说很归并差不多,居然有但是为什么还要去手写呢,其实学它我认为最重要的是学习归并中的分治思想。
2024-03-19 12:35:21
498
1
原创 算法之枚举
枚举法,我个人感觉就是暴力,就相当于把所有可能罗列出来,再进行判断是否符合条件,再筛选纳入,但是有时候感觉有些题也只能枚举,然后在此基础上优化。
2024-03-19 00:21:39
341
1
原创 算法之前缀和
当需要求某段区间的和时,前缀和可以快速求和,特别是多次求多段区间和的问题,前缀和可以避免重复计算从而提高效率。一般用数组来存储前缀和,因为sumArr[n] = sumArr[n-1] + arr[n],所以数组索引从1开始(sumArr代表[arr[1],arr[n]]区间的和)。
2024-03-17 00:08:38
365
1
原创 算法之二分
当题目给定一个区间,而且能够确定答案就在区间的内,这个时候就适合二分法求解答案,查找效率很高的一个算法,二分法有整数二分和实数二分,实数二分比较简单,印象中高中数学就学过了,下面主要讲整数二分,整数二分要区分答案是在答案区间的左端点还是右端点,如果是左端点就先缩小左边,反之先缩小右边,如果是先缩右边需要在二分时加一再除以二(确保mid总是偏向区间的右侧)。
2024-03-16 22:20:10
339
1
原创 算法之递推
递推一般用在有固定的公式的情况下,然后再结合递归去执行这个公式,其实有点类似动态规划的状态方程,它和递归的区别在于,它答案是无限的然后按要求递归到哪一步。
2024-03-16 18:01:46
370
1
原创 算法之递归
对于一个科班的学生来说,数据结构与算法是必修的一门课,我记得我们的数据结构与算法这门课是在大一下(应该没记错,要不然就是大二上)就开了,初学的时候数据结构还好,算法那真的是上的人难受,而且那个时候懒死了,算法课后都没有自己总结也没自己敲,就听了个课,所以这一片对于我来说还是很空白的。
2024-03-16 16:35:48
450
1
原创 关于idea新建没有Servlet选项的情况
这个是经常发生的问题了。之前遇到好几次,都解决了。但是今天突然忘记怎么解决了,于是写下来吧!方便自己以后解决。我自己遇到的就两种情况,所以以下给两种解决方案。
2024-03-06 23:58:01
1241
原创 关于@Param注解
在执行数据库操作方法时,底层是需要用到反射机制的,底层sql语句是预备sql语句,也就是sql语句中的参数为"?",当只有一个参数时,就会把值直接放入"?在写关于数据库操作的方法时,需要传递参数时,参数数量大于1个时,需要用到@Param。
2024-03-06 18:04:47
403
1
原创 关于request.getSession()创建失败解决方法
今天在做一个验证码的功能的时候,运行代码发现验证码显示错误,本以为是什么图片太大tomcat不支持什么的结果,试了好多方法都不行,只能自己摸索一下。先看出现的问题抓包看看包包也加载成功啊,但是图片为什么不显示呢,于是我去该文件的代码里面debug看看原代码试了一下dubug以后,发现是代码到这里就出问题了我到这里再执行就会报下面这个错误。
2023-10-18 16:18:11
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人