自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 测开面经2~

对称加密是一种加密方式,指加密和解密使用相同的密钥。常见的对称加密算法有DES、AES等。非对称加密是一种加密方式,指加密和解密使用不同的密钥,常见的非对称加密算法有RSA、ECC等。对称加密的优点是加密解密速度快,但需要安全地传输密钥;非对称加密的优点是安全性好,无需传输密钥,但加解密速度相对较慢。通常情况下,对称加密用于加密大量数据,而非对称加密用于传输密钥或者进行数字签名。红黑树是一种自平衡的二叉搜索树,它在每个节点上增加了一个额外的属性,即颜色,只能是红色或黑色。

2024-05-20 10:59:26 636

原创 测开面经(1)~

平衡二叉树是一种特殊的二叉树,其中任何节点的两个子树的高度差不超过1。这种平衡性质可以确保树的高度始终保持在较小的范围内,从而保证了各种操作的时间复杂度较低。对于平衡二叉树,插入、删除和查找操作的时间复杂度均为O(log n),其中n为树中节点的个数。这是因为平衡二叉树的高度始终保持在O(log n)的范围内,所以各种操作的时间复杂度均为O(log n)。对于黑盒测试来说,测试人员只关注输入和输出,而不关心内部的实现细节。

2024-05-13 09:54:24 1017

原创 Baidu Comate智能编码助手:提升软件生产力的高效工具使用教程

随着信息技术的飞速发展,编程已经成为许多行业不可或缺的一部分。然而,编程过程中的繁琐和重复性工作常常让开发者感到疲惫。为了解决这个问题,百度推出了Baidu Comate智能编码助手,旨在通过智能化的手段提升编程效率,让开发者能够更专注于创新和解决问题,不断地解放生产力。在未来,博主预测Baidu Comate智能编码助手将继续完善其功能,包括选定代码块进行代码理解和描述、注释生成、缺陷识别和自动修复、代码重构优化、自动插桩 Debug 等方面的能力。

2024-05-08 22:35:13 957

原创 你知道什么是Charles吗?

Charles中文名叫青花瓷,它是一款基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。它跨平台、半免费,与免费版本不同的是,半免费版本的Charles重启时间长达10秒钟并且当使用超过半小时后就需要重启.

2024-05-04 20:01:42 361 4

原创 MYSQL进阶部分知识点汇总~

验证索引效率:我们可以在未创建索引之前执行一条SQL语句,查看它的耗时,然后建立索引之后再去查看一次。创建索引的过程就是创建B+树的过程,如果该字段涉及的数据量很大的话,创建的过程也是非常耗时的。

2024-04-24 08:55:43 664 4

原创 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY colum

出现该问题的原因是MYSQL开启了安全模式,我们可以通过。解决办法:关闭SQL的安全模式,重新执行SQL语句即可。查看安全命令是否开启。

2024-04-17 09:23:42 343

原创 解决向MySQL中导入文件中的 数据时出现的问题~

第一步:我们找到MySQL中的my.ini文件,向该文件中加入如下代码。这是由于我们当前数据库的字符编码和我们文本文件中的不一致导致的。第二步:打开任务资源管理器,重启MySQL服务。

2024-04-16 19:02:02 234

原创 实现MySQL分页查询的三种方式~

第一种方法: **使用LIMIT和OFFSET关键字****第二种:使用LIMIT关键字简化写法:****第三种:使用子查询:limit为需要查询的记录条数,offset为从第几条记录开始**

2024-03-16 15:16:09 593 4

原创 享元模式~

比如我们生活中的共享单车,共享充电宝,共享汽车,这样做的目的就是为了提高资源的复用,但对于共享的单车,充电宝等,它的拥有者和创建时间是不相同的,但是它核心的东西都是一致的,那么。,内外环境分离,使得享元对象可以在不同环境中被共享,因为它将状态区分出来,将外部状态由客户端指定,内部状态自己维护,这样使得它能够在不同环境中进行共享,它的缺点也很明显,,享元模式最典型的应用就是池技术,比如字符串常量池,数据库连接池,线程池等等,他们都是实现了对共享元素的有效利用,避免去创建大量重复的对象,有效地利用资源。

2024-02-03 13:23:39 542 2

原创 Redis的SDS你了解吗?

当缩短SDS字符串后,并不会立即执行内存重分配来回收多余的空间,而是用 free属性将这些空间记录下来,因此在redis中,修改字符串是一个很常见的操作,因此如果后续有增长操作,则可直接使用。,当修改字符串并需对SDS的空间进行扩展时,不仅会为SDS分配修改所必要的空间,还会为SDS分配额外的未使用空间free,下次再修改就先检查未使用空间free是否满足,满足则不用在扩展空间。三种类型根据具体场景由Redis完成相互之间的自动转换,并且根据需要选取底层的承载方式,Redis内部,相较于C的标准字符串,

2024-01-26 19:20:54 641

原创 如何在Linux环境下安装Redis呢?

安装成功之后,启动redis的两种方式大家可以参考我之前的文章,:性能测试工具,可以在自己本子运行,看看自己本子性能如何。:修复有问题的 AOF 文件,rdb 和 aof后面讲.第一步:创建存放redis存放的文件夹。:修复有问题的 dump.rdb 文件。redis相关的信息会被默认的安装在。下图为解压成功示例的部分输出结果。下图为安装成功示例的部分输出结果。下图为编译成功示例的部分输出结果。使用cd切换到上述创建的目录。第四步:安装C语言的编译环境。第三步:解压下载的压缩包。:Redis 集群使用。

2024-01-24 18:53:02 493 2

原创 Redis6基础知识梳理~

其数据也是在内存中,如果内存不足,那么会将不常用的数据保存到硬盘,虽然都是key-value模式,但是对value(尤其是json类型)提供了丰富的查询功能。它支持二进制数据以及大型对象,可以根据数据的特点代替RDBMS,称为独立的数据库,或者配合RDBMS,存储特定的数据。我们可以将6381设置为6380的主服务器,那么6381承担的角色为6379的从服务器,6380的主服务器,那么6379的从服务器数量需要减少为1,其实这个过程就是实现了上述图示中的过程,它和一主二从的过程很相似。

2024-01-24 13:29:36 1188 2

原创 多线程实例练习题~

本篇文章主要是用来巩固多线程的简单应用,如果你已经学习了多线程的有关知识,想要巩固,那不妨拿下面几道题来考验一下自己吧!此次需求在之前的基础上,增加了让我们求两个奖项中较大的一个,这就涉及到了线程间的比较,我们可以通过线程的实现方式中的第三种,它的call方法能够返回线程的比较结果,我们只需要在main方法中分别获取不同线程的返回结果,再输出最大的即可,也可以通过将各个线程中的最大值以及线程名称加入到hashMap中,最后遍历hashMap求出最大值

2024-01-22 15:33:29 996 3

原创 多线程中的run方法和start方法有什么区别?

我们会发现上面二者的区别:通过start方式,两个线程是交替的执行run方法中的实现逻辑,而通过run方法,两个线程是顺序的执行run中的实现逻辑,从代码输出的角度,我们也能够看出二者之间的区别。二者看着好像没啥区别,那么是不是就意味着我们既可以通过run方法调用,也可以通过start方法?方法,不会启动新的线程,而是在当前线程中按照顺序执行,这样就无法实现并发执行的效果。当然不是,下面我们通过多个线程来输出,看是否会出现一致的结果。方法中的代码,而当前线程会继续执行后续的代码。需要注意的是,一个线程的。

2024-01-17 20:13:27 442 2

原创 实现将信息作为txt,pdf,图片的形式保存到电脑~

关于这个功能的实现,策略者模式也可以,但是对比了一下,策略者模式实现该功能会增加类的个数,但策略者模式满足开闭原则,后期如果有了新的打印方法,不用修改源代码,只需要增加新的即可,没有最好的技术只有最合适的技术,无论使用哪种方法还是需要根据实际开发进行选择!

2024-01-16 18:12:55 706 1

原创 你知道几种遍历map的方式?

使用迭代器遍历Map的键值对,使用for-each循环遍历Map的键值对,只遍历Map的键,第四种:只遍历Map的值

2024-01-14 15:56:32 405 1

原创 IDE实用小技巧之快速的将某一段代码抽离为一个方法~

第一步:选中你要作为方法抽离出来的代码块。第三步:我们可以修改方法名。

2024-01-12 20:34:14 592 2

原创 血泪教训!Java项目的路径中一定不要包含中文~

再次运行还是乱码,所以并不是因为这个,然后我突然发现了上面输出的file和url乱码的正好是中文的部分,于是我将中文部分删除,再次输出,成功获取到指定目录下的所有文件。今天通过应用类加载器获取某个目录下的文件时,控制台一直没有输出,但是没有任何的报错,代码如下所示。然后我去editor里面将所有都设置为UTF-8。

2024-01-12 14:08:31 590 4

原创 判断单链表是否有环?中点如何判断?入环点如何判断?

首先我们需要克服我们一种错误的认知,链表有环,并不是有“死节”,如下所示,左侧的这种链表结构是不存在的,因为在相交的那个节点不可能有两个指针,只有像右侧这种结构才是存在的。

2023-12-21 19:24:45 522

原创 使用Java实现合并两个数组[归并排序]

由于上述第一次完成,我们走的是第一个while循环中的if语句,else语句并没有被执行,因此arr2的数据元素依然是第一个,也就是说第二次比较是将arr1数组下标为1的元素和arr2中下标为0的元素进行比较,注意这里不是同时进行下标的移动,依次进行该过程,需要注意的就是。

2023-12-21 13:00:11 470 5

原创 为什么MySQL用B+树做索引而不使用其他的数据结构呢?

但如果我们要在数组中间的任意一个位置插入一个数据,那么必然会引起该位置后面所有数据位置的变化,也就是涉及到了数组的复制,而插入的位置越往前,所需要复制的数据就越多,该过程不仅需要消耗大量的内存,而且还会浪费大量的时间,因此。,所以这中间会发生磁盘IO,而如果树的高度太高,每遍历一层结点时,就需要从磁盘读取一次数据,也就是发生一次 IO,假设数据在树高为 20 的地方,那查找一次数据就得发生 20 次 IO,耗时太长了。and,>=,

2023-12-20 10:25:47 428 1

原创 你了解Redis中的跳跃表吗?

因此我们希望这个新节点添加到上一层的概率是二分之一,最简单的方式就是抛硬币,因为正反面的概率都是二分之一,所以我们只要让它在。第一层的索引节点数为n个,第二层为n/2个,那么第K层的索引节点数为。下述中的2为当索引个数为2时,我们就不再添加索引了,h为跳跃表的高度。,当然我们也不能让它无限增长,所以我们还需要添加一个最大值的限制。如果我们每一层要遍历X个节点,那么在跳表中查找的时间复杂度就为。,同时也失去了创建索引的意义,那么要如何更新索引呢?,如果是0就停止,如果是1就继续,最后出现的。

2023-12-19 20:39:13 630 1

原创 值类型相关函数与对象类型相关函数内存调用过程

当add函数执行完毕,左侧栈所占用的内存就会被释放掉,但是右边堆所占用的内存并不会被随着函数调用结束而清空,因为我们无法确定是否还有其他的线程也引用堆中的对象,而需要使用。答案是20和10,如果你猜对了请先不要窃喜,不妨继续往下看,检测一下自己是真的会还是仅仅猜对了。Java的基础数据类型都是值类型,指针也是值类型,因而是直接存到内存,不是存地址去寻址。先来看这样一段代码,你认为它的运行结果是多少呢?因此最终输出的a的值其实是main函数中的a的值。20和11还是20和10?

2023-12-12 17:13:40 558 1

原创 你知道Java中的BigInteger类和BigDecimal类吗?

我们在学习JavaSE基础的时候学习过int和double,前者是整形,后者是双精度浮点数,但它们是有最大值的,也就是说,他两并不支持无限大的数字。问题不在BigDecimal,而在ValueOf,我们提供的是double类型的,而。因此对于特别大的数字,Java为我们提供了两个类可用来操作,分别是。为什么这里打印出来的bigDecimal少了我们提供的一部分呢?上述方法对于BigDecimal对象同样适用,这里就不过多举例。支持任意长度的整数]支持任意长度的浮点数。

2023-12-10 14:53:26 584 1

原创 redis之缓存穿透,击透,雪崩~

以下为一个我们正常的缓存流程:在双十一的时候,淘宝的首页访问量是非常大的,所以它的很多数据是放在redis缓存里面,对应redis中的key,假设设置了缓存失效的时间为3小时,超过这三个小时后,在一瞬间redis缓存key大量失效,导致所有的请求都要直接和数据库交互,就会导致数据库响应不及时挂掉,此时首页就没办法向外界提供服务了,这就是。1:设置缓存的失效时间,在初始化的时候,我们可以随机初始化它的失效时间,不要让他们都在同一时间失效2:设置过期标志更新缓存,记录缓存数据是否过期(设置提前量),如果过期会触

2023-12-09 18:59:20 1033

原创 线程池的原理和基本使用~

映射到我们生活为我们每次打电话都需要买一个手机,每次打完电话就将手机扔掉,那么这样一来,无疑是非常的铺张浪费,而线程池就类似于将手机重复利用而不是每次都换新的,它能。无论是之前在JavaSE基础中,我们学习过的常量池,还是在操作数据库时,我们学习过数据库连接池,以及接下来要学习的线程池,均是一种。当前线程池最多可容纳线程的数量为8,那么到第九个线程就会触发拒绝策略。下面我使用日常生活中最常见的一个例子来说明线程池的原理。,如果不使用线程池,那么我们对线程的操作即为。对线程对象的一种优化。

2023-12-08 20:09:52 415 3

原创 解决(error) ERR Errors trying to SHUTDOWN. Check logs.问题~

该问题出现在我在使用shutdown关闭redis服务器时,出现该问题的原因是由于。第一步:在该目录下使用touch命令创建日志文件。第二步:将日志文件配置到redis.conf中。配置完成后需要重启服务器。

2023-12-06 09:08:16 615 1

原创 解决在Linux中进行redis的主从复制时出现的从机可以获取到主机的信息,主机获取不到从机的信息~

出现上述的原因是我在redis.conf中设置了密码,那么就导致了我在进行主从复制时,需要进行密码验证,然后我尝试在从机以及复制的redis.conf中去指定对应的密码,但尝试多次后问题还是没有解决,最终我将我redis.conf中的下述内容删除,才配置成功。

2023-12-04 20:39:50 560

原创 进行主从复制时出现的异常FATAL CONFIG FILE ERROR (Redis 6.2.6)Reading the configuration file

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***Reading the configuration file, at line 1>>> 'include/myredis/redis.conf'Bad directive or wrong number of arguments

2023-12-03 17:40:45 1103 1

原创 解决noauth authentication required异常

不过我这个密码还是试了很多次才想起来的,哦好像是听网课的时候和老师一起顺手改成了123456,吓得我赶紧改成了我平时经常用的。通过如下所示可进行密码的重置,但是前提是需要先通过验证,如果有小伙伴忘记密码,需要先解决这个问题哦。今天在使用redis数据库的时候,突然给报了个这个错误,上网一查才知道是因为。,因此,我们需要通过。

2023-11-30 15:02:32 958

原创 Java中的i++是原子操作吗?

的操作不是原子操作,那么由于两个线程并发执行,可能会出现数据竞争,导致最终结果不是0。因此我们可通过创建两个线程,对同一个变量count,一个线程对。我们多次运行会发现count不为0且有好几种不同的结果。的操作是原子操作,那么最终的结果应该是0。每个线程都执行100次操作。进行递增操作,另一个线程对。分为三步进行,分别是。

2023-11-30 09:37:42 490 1

原创 解决redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding异常

redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

2023-11-29 15:59:25 736

原创 解决Caused by: java.net.SocketTimeoutException: connect timed out Exception in thread “main“ redis.cli

Caused by: java.net.SocketTimeoutException: connect timed outException in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 198.168.88.129:6379

2023-11-29 10:30:33 764 3

原创 在Linux环境如何启动和redis数据库?

第二步:打开你拷贝的redis.conf文件,将其中的daemonize的no改为yes,表示让服务在后台启动。该窗口就不能关闭,否则会出现redis无法使用的情况,重新打开一个窗口,输入。第三步:可以关闭上述上述窗口,重新打开一个窗口连接redis数据库。第五步:连接到redis数据库。第四步:输入下述命令。

2023-11-26 18:47:25 493

原创 FinalShell连接Linux虚拟机报错java.net.ConnectException: Connection timed out: connect(亲测有效)

打开网络连接,确保如下所示,二者处于启动状态。

2023-11-25 15:19:35 744 4

原创 MongoDB基础知识~

MongoDB是一个开源高性能无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展是NOSQL数据库产品中的一种是最像关系型数据库(MySQL)的非关系型数据库,它所支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活,MongoDB中的记录是一个文档,它是一个由字段和值对组成的数据结构,MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。

2023-11-12 18:15:45 1021 3

原创 八皇后问题~

【代码】八皇后问题~

2023-11-12 10:57:23 57

原创 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.reviewmybatisplus.Service.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@

2023-11-11 16:09:31 794

原创 使用MybatisPlus时出现的java.lang.NullPointerException异常~

我们应该根据springboot的版本进行选择,错误原因:Junit的导包错误。单元测试的包有如下所示两个。

2023-11-11 12:20:23 1828

原创 给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一

输出出现次数最多的数和出现的次数,中间用一个空格隔开,如果有多个重复出现的数,输出值最大的那个。题目描述:给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个。第一行输入一个整数n(1

2023-11-08 11:35:15 810

Merry Christmas.zip

这是一个圣诞节表白程序,可以通过发送一份特别的圣诞卡片来向心爱的人表白。程序通过HTML+CSS编写。主要包含动画的下雪样式,以及圣诞树的设计和背景音乐背景图片的设计。不需要下载任何的软件,一个电脑甚至一个手机都可以!程序仅提供了基本的功能,可以根据实际需求进行扩展和改进。这个圣诞节表白程序可以帮助用户用创意和浪漫的方式向心爱的人表白,通过绘制个性化的圣诞卡片来传达真挚的情感。用户可以根据自己的喜好和创意,自定义卡片的样式和装饰物,让表白更加特别和难忘。希望这个程序能够给用户带来更多的快乐和幸福!

2024-01-29

空空如也

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

TA关注的人

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