自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常规方法不能用于实体判断(需要精确判断字段值)

你需要手动编写逻辑来判断该对象是否是“业务意义上的空对象”。想法实现方式blackVo!= null只能判断对象是否存在,不能判断内容是否为空同上同上toString()toJson()输出内容可见,但不能直接用于判断想判断对象字段是否为空✅ 必须自己写逻辑判断字段,或使用反射。

2025-06-09 10:58:47 221

原创 手动事务的使用

【观察其他定时任务,采用return Result写法,异常-1,正常1,所以排除@Transactional,因为异常时return,无法回滚(抛异常会跟相同功能的写法背离),所以采用手动事务处理】定时将前端页面配置的字典数据(标签数据)同步到数据库特定的表(标签表)原因:上来就手动事务,或者手动事务开启过早,容易出现长事务问题。都有,判断名称,名称不同修改。字典有,数据库表没有=新增。公司需要写一个定时任务,涉及增改查操作,范围要小,在增删改的地方,创建手动事务,异常里做回滚。

2025-06-03 10:35:29 201

原创 in跟exist的执行顺序

如果sql语句中包含了exists关键字,它优先执行exists左边的语句(即主查询语句)。如果匹配上,则可以查询出数据。如果sql语句中包含了in关键字,则它会优先执行in里面的子查询语句,然后再执行in外面的语句。如果in里面的数据量很少,作为条件查询速度更快。提高缓存命中率:较小的数据集更容易被加载到内存中,这可以增加数据访问的局部性并提高缓存的使用效率。优化索引使用:如果小表上的连接条件上有索引,那么查找匹配的大表记录会更加高效。不管是用in,还是exists关键字,其核心思想都是用小表驱动大表。

2025-05-23 14:03:07 227

原创 for循环实现死循环

/ 逻辑代码,通过 break 或 return 控制循环结束。//逻辑代码,通过return或者break空值循环结束。//逻辑代码,通过return或者break空值循环结束。) { //嵌入式常见写法。备注:这两种for循环写法 等价 于死循环。2:写死ture的for。

2025-05-23 11:38:57 375

原创 EXIST与JOIN连表比较

结论。

2025-05-21 17:30:01 272

原创 Redis的批量查询--录入操作

【代码】Redis的批量查询--录入操作。

2025-05-21 15:24:54 264

原创 maven的conf里绝不要有叫settings的文件!!!!!

【代码】maven的conf里绝不要有叫settings的文件!!!!!

2025-05-07 16:49:44 129

原创 【GC日志查看】

gc日志:看法简述:堆空间示图: 事件类型: :这表示这是一个垃圾回收事件,具体原因是分配失败(即没有足够的内存来分配新对象)。 垃圾回收范围: :这是年轻代(PSYoungGen)的垃圾回收详情。 是垃圾回收前年轻代使用的总内存。 是垃圾回收后年轻代使用的总内存。 是年轻代的总大小。 整体堆信息: :整个Java堆的信息。

2025-04-29 15:02:14 467

原创 GC的查看

看法简述:内存的状况(只是展示堆用,不对应任何日志信息)

2025-04-29 14:57:38 1345

原创 PageHelper编写注意及内存泄漏处理

原因:确保分页参数被消费掉,并正确执行分页参数清理操作。2:分页参数被消费后,抛出异常(无内存泄漏)1:分页参数被消费前,抛出异常(内存泄漏)2:执行sql时抛出异常 (无内存泄漏)

2025-04-27 15:49:28 359

原创 线程池参数配置

备注:更高级的还有动态配置,基于CPU跟核心线程的使用率动态调整。

2025-04-25 15:12:07 229

原创 ConcurrentHashMap原理

ConcurrentHashMap 是专门为并发场景设计的,支持高效的并发读写操作。

2025-04-25 11:21:55 291

原创 @TrandLocal原理简述 与 可能存在的长事务问题

ThrandLocal 自动从数据库连接池获取链接,并开启事务,自动绑定到TrandLocal上,耗时操作会导致占用这个链接时间长,数据库连接被占用不释放,相似操作过多,会导致数据库连接池耗尽【典型的长事务】被这个注解包裹的方法都使用同一个链接,

2025-04-25 11:03:38 123

原创 【FastJSON】的parse与parseObject

功能:parseObject 方法专门用于将 JSON 字符串解析为一个 Java Bean(即指定类型的对象)。功能:parse 方法是 FastJSON 提供的一个通用解析方法,它可以将 JSON 字符串解析成一个 Object 类型的结果。适用场景:当你不确定或者不关心 JSON 字符串的具体结构(比如它可能是一个数组、对象或者其他类型)时,可以使用 parse 方法。返回类型:parse 返回的是 Object 类型,而 parseObject 可以指定返回类型。自定义类型会报类型转换异常!

2025-04-25 11:02:26 342

原创 【延迟双删】简单解析

首次删除:当需要更新某个数据项时,首先删除缓存中的该项。更新数据库:接着,更新数据库中的该项。短暂延迟:然后等待一段很短的时间(例如50毫秒),这段时间允许任何正在进行的读操作完成。二次删除:最后,再次删除缓存中的该项。这样做的目的是防止在这段延迟期间有任何读操作将旧数据重新写入了缓存。2:为什么要进行再次删除(二次删除):1:为什么延迟:短暂的等待时间(延迟)是为了确保所有可能的读取请求都已完成,避免旧的数据被再次写入缓存。

2025-04-22 21:55:58 207

原创 加锁注意事项

• 说明二:如果lock方法在try代码块之内,可能由于其它方法抛出异 常,导致在finally代码块中,unlock对未加锁的对象解锁,它会调用 AQS 的 tryRelease 方法(取决于具体实现类),抛出 IllegalMonitorStateException异常。2:并且在加锁方法 与try代码块之间没有任何可能抛出异常的方法调用,避免加锁成功后,在 finally中无法解锁。• 说明一:如果在lock方法与try代码块之间的方法调用抛出异常,那么无 法解锁,造成其它线程无法成功获取锁。

2025-04-18 17:21:07 192

原创 字符串循环拼接,不能用 + 连接, 需要用 StringBuilder 代替

然后,在循环中,我们调用 append() 方法来追加 "hello" 字符串。这不会创建新的字符串实例,而是直接在现有的 StringBuilder 实例上进行修改。这行代码时,实际上是在创建一个新的 String 对象。这是因为 String 在 Java 中是不可变的,这意味着每次你“改变”一个 String 的值时,实际上是创建了一个新的 String 实例。随着循环次数的增加,这种操作会显著增加内存消耗和垃圾回收的负担,因为每次迭代都会生成一个新的临时对象。用 StringBuilder 代替+

2025-04-18 16:14:53 150

原创 Map初始容积、限制最大容积、最大容积底层

哈希表的初始容量:位运算优化:

2025-04-18 11:45:25 174

原创 Map扩容因子底层

2025-04-18 11:33:45 91

原创 下载maven低版本(官网)

如何下载历史版本的Maven?_maven历史版本下载-优快云博客

2025-04-16 10:39:52 408

原创 git ssh

Github配置ssh key的步骤(大白话+包含原理解释)_github生成ssh key-优快云博客

2025-04-16 10:24:11 100

原创 BigDecimal(double)会丢失精度

或使用BigDecimal的 valueOf方法,此方法内部其实执行了Double的toString,而 Double 的toString按double的实际能表达的精度对尾数进行了截断。优先推荐入参为String的构造方法:BigDecimal recommend1 = new BigDecimal("0.1");• 说明: BigDecimal(double)存在精度损失风险,在精确计算或值比 较的场景中可能会导致业务逻辑异常。• 最坏影响: 数据精度丢失。• 级别: 【MAJOR】

2025-04-16 10:23:09 245

原创 所有的包装类对象之间值的比较,全部使用equals方法比较

• 说明:对于Integer在-128至127之间的值会在缓存里对象复用,区间 外数据会产生新对象。正例:Integer.valueOf(a).equals(Integer.valueOf(b));反例:Integer.valueOf(a) == Integer.valueOf(b);所有的包装类对象之间值的比较,全部使用equals方法比较。• 级别: 【BLOCKER】• 最坏影响:导致业务逻辑错误。• 规约类型:BUG。

2025-04-15 17:51:29 109

原创 ArrayList的subList的数据仍是集合

说明:subList 返回的是ArrayList的内部类SubList,并不是 ArrayList而是ArrayList的一个视图,一个片段,对于SubList子列表 的所有操作最终会反映到原列表上。ArrayList的subList结果不可强转成ArrayList,否则会抛出 ClassCastException异常 •。反例:List test = (ArrayList) list.subList(0, 1);级别: 【CRITICAL】 •。最坏影响: 程序错误,抛出异常。规约类型:BUG •。

2025-04-15 17:44:34 403

原创 Arrays.asList()的对象不能调用add/remove/clear方法

使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相 关的方法,它的add/remove/clear方法会抛出 UnsupportedOperationException异常 •。Arrays.asL ist体现的是适配器模式,只是转换接口,后台的数据 仍是数组。第二种情况:str[0] = "changed";sList的返回对象是一个Arrays内部类,并没有实现集合的修改 方法。第一种情况:list.add("yangguanbao");最坏影响:程序错误,抛出异常 •。

2025-04-15 17:31:39 178

原创 集合转数组的方法:toArray的正确用法

时,传入数组的大小会对性能、内存使用和安全性产生不同的影响。方法用于将集合转换为数组。

2025-04-15 17:12:31 482

原创 mybaties plus 更新null值进入数据库

(数据库一定要支持字段为null值)

2025-04-11 18:46:33 614

原创 随着程序的启动而加载

启动类启动,加载策略模式的子类,最终将数据收集到map。由程序启动带动注入。

2025-03-14 15:59:38 258

原创 plus 批量插入的底层原理 及 处理方式(优化)

service层提供了另一种方案,掉service层的实现进行批量插入。【就是需要填写俩参数那个,其中一个是waper】

2025-03-10 15:06:42 163

原创 instr,locate是否使用索引实验

函数(在MySQL中)用于查找一个子字符串在另一个字符串中的起始位置。查找一个字符串在另一个字符串中首次出现的位置。(只用模糊查询不考虑哪一位开始,写死>0)它返回的是子字符串首次出现的位置索引,如果未找到该子字符串,则返回0。

2025-03-07 10:00:20 235

原创 飞书多维表格自动化接入方式

4:向指定接口发送数据。

2025-03-05 19:18:36 186

原创 JDK 14,15,17的一些新特性(部分常用)

实现, 只允许指定的子类去继承,结合sealec使用)属性位置就是 小括号里的userid,username。备注:父类子类必须位于同一个包下。4.1:permits(限制。作用相当于只读的class类。

2025-02-13 23:30:33 260

原创 2025新年祝自己工作顺利,新年快乐!!!

2025新年祝自己工作顺利,新年快乐!

2025-02-10 20:08:50 114

原创 SQL深度分页优化

2024-12-06 20:03:01 110

原创 MDC实现日志链路追踪

MDC是基于@Slf4j的。

2024-09-07 18:06:33 581 1

原创 CPU飙高排查步骤

备注:这里1328线程号是十进制,转为16进制,找到对应nid。根据返回信息,排查到1313进程里,1328线程cpu占用超高。(这张图仅做展示,红框tid,nid随意圈展示用)查看进程里每个线程的详细占用。计算器里HEX是十六进制。

2024-09-05 19:51:41 679 1

原创 oracle索引字段存储数据过长,导致索引失效

此问题发现于6月中旬,线上问题优化。但是基于优化查询,是的查询保持毫秒级。2:长位索引,索引不生效。并未解决索引不生效问题,1:短位数据,索引生效。

2024-07-09 21:18:18 352

原创 排查问题心得

答案:实施手滑,俩没勾选上!1:排查一上午,发现其他同事写的需求存在bug,且仓储系统因为新需求导致取消幂等性校验。===========推送数据出现了重复(我们推送给仓储)========================修复后又出现了问题,数据显示不正确============1:推送数据出现了重复(我们推送给仓储)排查一整夜没结果,还原代码发现就是该两个。2:修复后又出现了问题,数据显示不正确。问:为什么第一次发送4个第二次发送两个。实施第一次手动勾选推送4个。第二次手动勾选推送两个。

2024-05-05 21:42:49 220

原创 不一样的SQL优化

思想要灵活,懂变通。

2024-04-30 17:58:21 126

原创 (包治百病)江湖老中医治疗oracal序列重复

今日测试来报此问题,觉方案一太麻烦,所以写了个懒人版,江湖老中医,包治百病。报错: ORA-00001: 违反唯一约束条件 (mes.SYS_C0020470)

2024-04-25 10:49:05 212

空空如也

空空如也

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

TA关注的人

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