自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发并行的理解

关于并发和并行这两个概念感觉不大好理解啊,感觉都是在讲同时做多件事情,实际上还是有所区别的,在图书馆试图理解这两个概念,突然有了灵感,那就记录一下自己的理解吧。一段时间内,某一刻开始,同时处理多件任务,从任务的视角看,直至到完成那一刻,任务的处理是没有中断过的,就好像cpu叫了几个分身去处理这些任务。一段时间内,轮流地处理多件任务,从任务的视角看,任务的处理是有中断过一小段时间的。

2024-07-14 16:55:04 90

原创 关于关闭防火墙后docker启动不了容器

还真是因为关闭了防火墙,后来我重新开启防火墙,容器启动成功。上网搜索了一下说是什么关闭防火墙以后,那些网络规则被破坏不可用了,需要设置规则。使用最后一定要重启docker!一开始真不知道是什么问题,于是镜像重新拉取重新安装,最后都把虚拟机快照恢复了。结果可以了,于是我就想是不是我刚刚关闭了防火墙导致。于是我立马又去把防火墙关了,然后再去启动。反复检查了是否运行,端口等一系列细节的操作,结果都不行。可以操作reids了,可是没想到另一个问题又出现了,没办法启动容器了。于是去linux关闭了防火墙。

2024-06-24 15:06:37 252

原创 苍穹外卖项目完结

历时两周多的苍穹外卖项目终于完结,其实如果没有其他任务的影响,可以更快的,虽然项目简单,但是收获还是很多的。接下来微服务,然后补习一下前端知识,最后毕设开工。

2024-05-12 01:07:30 819

原创 苍穹外卖Day7

在完成购物车接口时,涉及到了购物车的表设计,购物车内需要记录商品价格,口味,对应的用户id等信息,但商品价格在商品表,口味在商品规格表中,如果设计一张购物车表,那么购物车得记录用户id,商品id,口味id。想到了多表联合查询,可以有效解决购物车的字段冗余问题且改动影响不大,但是会给查询带来不便,最后从需求出发,很明显看出还是选择单表查询更适合当前业务的需求。redis使用场景,应该是用户量大的且对数据库使用频繁的情况下,比如用户查询操作,该操作是最频繁使用数据库的场景。

2024-05-04 00:07:49 190

原创 苍穹外卖Day5

当你使用 @SpringBootTest 注解在一个测试类上时,Spring Boot 会启动一个嵌入式的应用服务器(通常是 Tomcat、Jetty 或 Undertow),并加载你的整个 Spring 应用程序上下文,包括你的 @Configuration 类、@Component 类、@Service 类、@Repository 类等。也就是说测试类如果需要用到整个项目中的某些bean对象,那么整个注解必须有,要不然就报错空指针异常,把注解去掉后确实是没办法跑测试。

2024-05-02 12:25:30 438 1

原创 苍穹外卖Day3

当一个类实现了Serializable接口时,它表示该类的对象可以被写入到流(例如文件或网络连接),并且之后可以从流中恢复出来,这个过程被称为序列化(serialization)和反序列化(deserialization)。通过在JoinPoint上定义切面,可以在程序执行过程中动态地插入切面逻辑,实现横切关注点的模块化和复用。在切面方法中,可以通过JoinPoint参数来获取这些信息,并根据需要执行额外的逻辑。通过拦截这些JoinPoint,AOP框架可以插入额外的逻辑,实现横切关注点的功能。

2024-05-01 13:55:13 787

原创 JWT令牌工具类(令牌生成与令牌解析)

JWT令牌工具类可以直接复制代码,调用方法即可,记得初始化密钥和令牌有效期,对于判断令牌解析结果,捕获异常并处理就行了。

2024-04-20 21:18:52 209

原创 关于过滤器和拦截器

主要用于在Spring框架中对请求进行拦截和处理,如权限校验、日志记录等。主要用于对请求和响应进行预处理和后处理,如编码设置、请求参数的校验、跨域处理等。如果需要在Servlet容器级别对所有请求和响应进行统一的预处理和后处理,那么过滤器是一个很好的选择。如果需要在Spring MVC框架中对特定的请求路径或方法进行拦截和处理,那么拦截器更为合适。拦截器的配置则通常在Spring MVC的配置文件中进行,与Spring框架紧密集成。过滤器的优先级大于拦截器的优先级,请求先经过过滤器才到拦截器,响应则相反。

2024-04-20 21:08:36 337

原创 哈夫曼树(最优树)与哈夫曼编码

利用给出的数构造哈夫曼树:将数字排序,取出最小与次小的数构造一棵二叉树(从序列中去掉取出的数),根为两个节点的和,把和放回序列中排序,直到序列为空。在哈夫曼树的基础上,以左走为0,右走为1,可以得出每一个叶子节点的哈夫曼编码。

2024-04-17 12:19:15 128 1

原创 线索二叉树

给一颗二叉树画出前序中序后序线索二叉树,也就是找叶子节点前驱与后继(因为根节点左右都来存储孩子了,所以只需要找叶子节点的)。**中序线索二叉树:**可以找到下一棵树,也找得到上一棵树,所以可求中序前驱与后继。**先序线索二叉树:**可以找到下一棵树,而找不到上一棵树,所以可求先序后继。**后序线索二叉树:**可以找到上一棵树,而找不到下一棵树,所以可求后序前继。

2024-04-17 11:47:21 171 1

原创 关于类图中各种关系的理解(附加Java代码)

这里箭头指向 Address 类,表示 Student 类与 Address 类之间存在关联关系,并且 Student 类拥有 Address 类的实例。箭头指向 University 类,表示 Department 类是 University 类的一部分,形成聚合关系。箭头指向 Computer 类,表示 CPU 类是 Computer 类的一个组成部分,形成组合关系。在上面的例子中,Student 类和 Address 类之间存在关联关系,因为一个学生有一个地址。,表示一个类是另一个类的特殊类型。

2024-04-15 13:40:39 990 1

原创 关于@Mapper注解为何写在Mapper接口文件中

@Mapper放在接口上是因为这个接口是MyBatis用于生成动态代理实现类的契约,而@Service放在实现类上是因为这个实现类包含了业务逻辑的具体实现。虽然两者都是用于将对象交给Spring容器管理,但它们的应用场景和背后的机制是不同的。

2024-04-14 23:51:13 415 1

原创 关于项目分层解耦与IOC&DI

之前在处理请求与响应时,我们接收客户端的请求,调用数据库或者接口获取到需要的数据时,逻辑处理返回给客户端。我们都知道Java是面向对象编程,但是我们的代码都写在一个类中,没有遵守面向对象七大原则中的单一职责原则,分工不明确,非常不利于后期的修改维护与拓展。举个例子,我们需要对不同用户在性别这个属性的值上显示男女或男士女士,但是我们现在修改的话,会有很多重复的代码不能复用导致产生很多冗余的代码。所以我们需要把代码按照一定的逻辑进行分层。

2024-04-14 02:19:03 645 1

原创 关于接收前端传回的JSON格式数据在转为类实例时的报错

果然是我在User类中写了一个有参构造器,编译器就不能给我默认生成一个无参构造器了,而创建者之一就是需要无参构造器,所以当然报错。我立马检查属性有没有写错,折腾了好久都没解决,于是查资料发现是由于Spring框架在尝试将HTTP请求体中的JSON数据转换为。类没有创建者(creators),比如默认的构造函数,因此Jackson库不能从对象值中反序列化它。具体来说,错误消息指出。最后把构造器删除后成功运行。

2024-03-29 22:41:27 409 1

原创 算法之广度优先搜索

广度优先算法适用于遍历无向图,可以按照每个节点被发现的顺序,不重复地进行遍历;还有就是一般题目需要查找最短路径时,也可以用广度优先搜索来解决,因为它是从当前层开始一层一层遍历,也就是可以找到达目标点的最短路径(两点间直线最短)。其实这两种用法区别不大,如果给遍历无向图加以一个终止条件,也就是寻找最短路径。

2024-03-23 15:32:42 545

原创 数据结构之树状数组

适合用来求某段区间的和,这里或许有疑惑求某一段区间和,那么用前缀和算法就好了啊,为什么还要学树状数组,因为树状数组相较于前缀和,它可以动态求和,也就是说给定我们一个数组,如果问我们某一区间和是多少,我们可以很快用前缀和解决,但是如果它让我们把索引为3,5,9的数值都加上2,再询问某一段区间和时,用前缀和就很费力了,每一次修改数组的值,都需要重新更改该数后面所有数,如果修改的次数很大可想而知时间复杂度得上几个台阶,但是树状数组可以比较快速解决。

2024-03-20 23:47:04 405 1

原创 关于VMware虚拟机安装Centos网络连接失败的问题

后来在网上找解决方法的时候,无意间发现在虚拟网络编辑器我的NAT模式下DHCP居然不是已开启,我就猜应该就是这个问题了。然后我启用以后果然成功了。最后点击右上角的关机标志,再点网络连接那里,点击连接,最后打开火狐浏览器,输入网址测试,成功获取响应。可以看到我的NAT模式下DHCP没有开启,接下来点击更改设置。今天在虚拟机上安装好Centos系统后发现一直连接不了网络。一直显示连接失败,我于是又换了桥接模式结果还是连接失败。看到我并没有勾选使用DHCP服务。点击菜单栏编辑,虚拟网络编辑器。

2024-03-20 22:43:50 180 1

原创 算法之归并(分治)

归并排序是一个时间复杂度nlogn的算法,效率可以说是非常高了,但是在java中Arrays给我们提供的方法里面也有一个排序方法,底层用的是快速排序,时间复杂度可以说很归并差不多,居然有但是为什么还要去手写呢,其实学它我认为最重要的是学习归并中的分治思想。

2024-03-19 12:35:21 485 1

原创 算法之枚举

枚举法,我个人感觉就是暴力,就相当于把所有可能罗列出来,再进行判断是否符合条件,再筛选纳入,但是有时候感觉有些题也只能枚举,然后在此基础上优化。

2024-03-19 00:21:39 330 1

原创 算法之前缀和

当需要求某段区间的和时,前缀和可以快速求和,特别是多次求多段区间和的问题,前缀和可以避免重复计算从而提高效率。一般用数组来存储前缀和,因为sumArr[n] = sumArr[n-1] + arr[n],所以数组索引从1开始(sumArr代表[arr[1],arr[n]]区间的和)。

2024-03-17 00:08:38 356 1

原创 算法之二分

当题目给定一个区间,而且能够确定答案就在区间的内,这个时候就适合二分法求解答案,查找效率很高的一个算法,二分法有整数二分和实数二分,实数二分比较简单,印象中高中数学就学过了,下面主要讲整数二分,整数二分要区分答案是在答案区间的左端点还是右端点,如果是左端点就先缩小左边,反之先缩小右边,如果是先缩右边需要在二分时加一再除以二(确保mid总是偏向区间的右侧)。

2024-03-16 22:20:10 330 1

原创 算法之递推

递推一般用在有固定的公式的情况下,然后再结合递归去执行这个公式,其实有点类似动态规划的状态方程,它和递归的区别在于,它答案是无限的然后按要求递归到哪一步。

2024-03-16 18:01:46 360 1

原创 算法之递归

对于一个科班的学生来说,数据结构与算法是必修的一门课,我记得我们的数据结构与算法这门课是在大一下(应该没记错,要不然就是大二上)就开了,初学的时候数据结构还好,算法那真的是上的人难受,而且那个时候懒死了,算法课后都没有自己总结也没自己敲,就听了个课,所以这一片对于我来说还是很空白的。

2024-03-16 16:35:48 440 1

原创 关于idea新建没有Servlet选项的情况

这个是经常发生的问题了。之前遇到好几次,都解决了。但是今天突然忘记怎么解决了,于是写下来吧!方便自己以后解决。我自己遇到的就两种情况,所以以下给两种解决方案。

2024-03-06 23:58:01 1158

原创 关于@Param注解

在执行数据库操作方法时,底层是需要用到反射机制的,底层sql语句是预备sql语句,也就是sql语句中的参数为"?",当只有一个参数时,就会把值直接放入"?在写关于数据库操作的方法时,需要传递参数时,参数数量大于1个时,需要用到@Param。

2024-03-06 18:04:47 383 1

原创 关于request.getSession()创建失败解决方法

今天在做一个验证码的功能的时候,运行代码发现验证码显示错误,本以为是什么图片太大tomcat不支持什么的结果,试了好多方法都不行,只能自己摸索一下。先看出现的问题抓包看看包包也加载成功啊,但是图片为什么不显示呢,于是我去该文件的代码里面debug看看原代码试了一下dubug以后,发现是代码到这里就出问题了我到这里再执行就会报下面这个错误。

2023-10-18 16:18:11 134

空空如也

空空如也

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

TA关注的人

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