buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

#

[置顶] 面试题沟通整理

摘要: int与Integer-基本类型与包装类型的区别、使用场景, 如 数据表对应的实体类中,int类型字段对应的 属性 为什么是Integer? 幂等、防重复提交, 概念与区别。 如何系统全局做 防重复提交? fastjson关于枚举反序列化:当字符串不是枚举常量时,会怎样?请写出来测试代码。 数据的状 阅读全文

posted @ 2026-01-30 00:54 buguge 阅读(13) 评论(0) 推荐(0)

2026年5月14日 #

#解决问题要彻底# 慢SQL治理完成后,如何防止同类问题“死灰复燃”?

摘要: 一、 问题现场:一个触发全表扫描的“企业名称”查询 今天巡检系统时,发现一条耗时超过15s的慢SQL: select count(*) as orderNum, sum(amount) as totalAmt, sum(case when order_status = 'SUCCESS' then 阅读全文

posted @ 2026-05-14 21:30 buguge 阅读(4) 评论(0) 推荐(0)

从合同甲方是荒谬的“JD”谈起:软件开发不应遗忘的“常识”

摘要: 我们构建的系统,终将服务于这个充满规则与常识的现实世界。 阅读全文

posted @ 2026-05-14 10:08 buguge 阅读(10) 评论(0) 推荐(0)

2026年4月26日 #

别留小尾巴/尽快剪掉小尾巴:从一次“ABA”字段重命名,谈谈“解决问题要彻底”

摘要: 一、背景:一次计划周密的“ABA”迁移 最近,团队需要对“API商户密钥配置表” enterprise_api_key 中的 enterprise_id 字段进行重命名,新字段名为 partner_id。为确保迁移过程平稳、不影响线上业务,我们采用了经典的“ABA”策略: 阶段A:保留原字段,增加新 阅读全文

posted @ 2026-04-26 22:22 buguge 阅读(5) 评论(0) 推荐(0)

2026年4月21日 #

常见的OOM错误 ( OutOfMemoryError全类型详解)

摘要: Java heap space GC overhead limit exceeded Metaspace Unable to create new native thread 阅读全文

posted @ 2026-04-21 22:08 buguge 阅读(52) 评论(0) 推荐(0)

2026年4月20日 #

开发者暴露了一个无需授权访问的裸接口,我问:如果有人暴力请求怎么办?

摘要: 如下方法,@UnAuthToken 注解代表无需授权访问。 这个方法逻辑很简单,入参“key”是一个md5串,程序根据这个“key”去redis拿到数据,经过转换后返回。 每次调用这个方法,意味着 ①会调redis ②会记操作日志 /** * 企业首页忘记登录密码通过key获取当前用户名 * * @ 阅读全文

posted @ 2026-04-20 21:50 buguge 阅读(25) 评论(0) 推荐(0)

2026年4月9日 #

【SQL性能优化篇】有了!治理慢SQL“WHERE create_time ORDER BY id”的良药---规避“Using filesort”性能杀手

摘要: 如何将WHERE create_time ORDER BY id的低效查询,优化为极致性能的WHERE id ORDER BY id查询? § 引言:一个经典的性能困境 在开发订单流水、记账流水、操作日志、监控数据等按时间分页查询的应用时,下面这条SQL非常常见,但在数据量增长后极易成为性能瓶颈: 阅读全文

posted @ 2026-04-09 10:19 buguge 阅读(25) 评论(0) 推荐(0)

2026年4月2日 #

高效查询商户日终余额:一个SQL的优化实践

摘要: 知识就是力量,但更重要的是运用知识的能力。 阅读全文

posted @ 2026-04-02 13:00 buguge 阅读(46) 评论(0) 推荐(0)

2026年3月23日 #

Hutool 的 `TimedCache` 到期会自动清理吗? ——————hutool cache的"惰性清理"和"定期清理"

摘要: 在创建 `TimedCache` 后立即调用 `schedulePrune()`,以确保过期数据会被及时清理,避免内存泄漏问题。 阅读全文

posted @ 2026-03-23 21:04 buguge 阅读(33) 评论(0) 推荐(0)

2026年3月16日 #

Fastjson枚举反序列化:当字符串不是枚举常量名时,会发生什么?

摘要: 我们知道,对外暴露的 HTTP RestAPI 接口通常使用 JSON 格式传输数据。服务端接收到数据后,会将 JSON 字符串反序列化为对应的请求实体对象。 我司灵工系统使用的是 Fastjson-1.2.83 作为序列化工具。在一次RestAPI开发过程中,我忽然产生一个好奇:当 VO 属性的类 阅读全文

posted @ 2026-03-16 20:20 buguge 阅读(24) 评论(0) 推荐(0)

fastjson-EnumDeserializer类及源码分析

摘要: 本文以fastjson-1.2.83版本中 EnumDeserializer 类的源码,来解释其工作原理和实现细节。 🎯 类结构概览 EnumDeserializer 是 FastJSON 用于将 JSON 反序列化为枚举类型的核心类。它支持: 通过枚举名称(Enum.name())反序列化 通过 阅读全文

posted @ 2026-03-16 18:32 buguge 阅读(6) 评论(0) 推荐(0)

2026年3月9日 #

`UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only` 异常解析

摘要: ① 编程式事务(TransactionTemplate 或 PlatformTransactionManager) vs 声明式事务(@Transactional 注解)。 ② 声明式事务管理中应慎用setRollbackOnly(),避免UnexpectedRollbackException异常。 阅读全文

posted @ 2026-03-09 20:42 buguge 阅读(15) 评论(0) 推荐(0)

2026年3月5日 #

认识2个单词:goal/target —————— 为什么Maven是 "goal" 而不是 "target"?

摘要: Maven Goal:强调"要完成什么"(声明式);Ant Target:强调"要执行什么"(命令式) 阅读全文

posted @ 2026-03-05 22:04 buguge 阅读(16) 评论(0) 推荐(0)

2026年3月1日 #

聚合系统设计:策略模式(Strategy Pattern)在银行通道对接场景中的应用

摘要: 在银行支付接口对接的复杂场景中,我们通常采用策略模式实现多银行适配。本设计的精妙之处体现在两个核心细节: 首先,在策略上下文的命名上,我们突破传统"Context"或"Dispatcher"的局限,创新性地采用BankPaymentStrategyRoute这一名称。Route后缀精准表达了其路由职 阅读全文

posted @ 2026-03-01 01:21 buguge 阅读(26) 评论(0) 推荐(0)

2026年2月26日 #

这样构建对象,太帅了!—— 阶梯式Builder模式与代码整洁之道

摘要: 当你的代码既能正确运行,又能清晰表达业务意图时,你也许就真正掌握了整洁代码的艺术。 阅读全文

posted @ 2026-02-26 15:09 buguge 阅读(23) 评论(0) 推荐(0)

2026年2月13日 #

注意!字段数据类型不匹配,这个sql会很慢

摘要: 在数据库优化中,我们经常会关注索引的创建、SQL的写法,但有一个隐蔽的“性能杀手”却容易被忽略——字段数据类型与查询值类型不匹配。 一、问题现象:一个“简单”查询的异常性能 我们有一张交易表 plat_order,其中 order_id 字段定义为 VARCHAR(20),并且在该字段上建立了索引 阅读全文

posted @ 2026-02-13 16:14 buguge 阅读(16) 评论(0) 推荐(0)

2026年2月10日 #

还在用ArrayList?用HashSet吧!--性能对比

摘要: 选择正确的数据结构,往往比优化算法更有效。 阅读全文

posted @ 2026-02-10 20:24 buguge 阅读(17) 评论(0) 推荐(0)

2026年2月4日 #

分页查询还在用create_time去做降序?

摘要: 本笔记记录的这个案例非常经典,也在展示一种优化原则:有时,巧妙地利用现有资源,比盲目增加索引更能体现技术深度。 📌 问题定位:一个典型的排序慢SQL 在巡检中发现一条慢查询,其目的是获取签约信息表中最新创建的10条记录: SELECT id, batch_no, order_no, ... -- 阅读全文

posted @ 2026-02-04 23:01 buguge 阅读(26) 评论(0) 推荐(0)

从 synchronized 到 ConcurrentHashMap:一个小小的并发控制策略升级优化,证明我还是初级程序员

摘要: 我们是SpringBoot+Mybatisplus项目。我的一个工具方法中,需要获取entity对象对应数据表的 “更新时间” 字段名(update_time 或 updateTime)。 代码完成后,考虑到其中的Mybatisplus调用及java反射机制所产生的性能损耗,我使用Map来缓存数据关 阅读全文

posted @ 2026-02-04 22:05 buguge 阅读(8) 评论(0) 推荐(0)

2026年1月21日 #

【研发笔记20260120】值得记录:靠谱程序员的回聘

摘要: 【研发笔记20260120】 🖊️ 应对变化 今天我在审批一个MR。从下面截图中的代码可知,这是在控制返回数据列表的排序——根据状态值进行排序。 页面截图见下方,更直观。 显然,这种实现方式,每当排序发生变化、或者新增状态码的时候,都要改这段代码。耗费开发、测试、发版等人力成本。我找开发者,问他有 阅读全文

posted @ 2026-01-21 11:18 buguge 阅读(20) 评论(0) 推荐(0)

2026年1月13日 #

研发笔记:如何消除长字符串的秘钥数据对RPC负荷、日志量、系统安全所带来的伤害?

摘要: 0x01. 秘钥数据特征 以我们系统的数据表levy_merchant_relation为例,该数据表存储的是商户服务商关联关系。下面是与之对应的 LevyMerchantRelation 实体类结构,除了包括商户与服务商相关字段,还包括HTTP接口通信的秘钥和口令,如RSA公私钥、加密秘钥。 Le 阅读全文

posted @ 2026-01-13 22:29 buguge 阅读(16) 评论(0) 推荐(0)

2025年12月24日 #

未给entity的主属性赋值,Mybatisplus却抛出了type mismatch异常。——————分享一下Mybatisplus主键填充机制

摘要: 建议在定义主键时,养成显式指定 @TableId 的 type 的习惯。这可以避免因依赖全局默认配置(可能被不同人无意中修改)而导致的意外错误,使代码更加健壮和可读。 阅读全文

posted @ 2025-12-24 21:04 buguge 阅读(73) 评论(0) 推荐(0)

2025年12月9日 #

在java中实现c#的int.TryParse方法

摘要: 在Java中实现类似C#的 int.TryParse方法,确实能带来更安全、更优雅的编码体验(指数字转换)。 阅读全文

posted @ 2025-12-09 22:44 buguge 阅读(26) 评论(0) 推荐(0)

2025年11月12日 #

灵活用工平台-连续劳务所得税-计算器-工具类,拿走不谢

摘要: 本文主要讲新规下互联网平台从业人员的劳务报酬所得的计算方法。 本文关键词:个人所得(个人收入);劳务报酬所得;互联网平台劳务报酬所得;个人所得税(本文简称“个税”); 阅读全文

posted @ 2025-11-12 22:38 buguge 阅读(316) 评论(0) 推荐(0)

2025年11月6日 #

Apollo场景建议配置指南:充分发挥分布式配置中心优势

摘要: 随着微服务架构的广泛应用,配置管理已成为系统运维中的关键挑战。Apollo作为业界广泛认可的分布式配置解决方案,正是为了应对这一挑战而诞生。它能够集中化管理应用在不同环境(开发/测试/生产)、不同集群的配置,解决微服务架构中配置信息分散和冗余的痛点。Apollo的核心优势在于其实时配置推送能力——配 阅读全文

posted @ 2025-11-06 23:06 buguge 阅读(38) 评论(0) 推荐(0)