- 博客(1682)
- 资源 (33)
- 收藏
- 关注
原创 Spring+asyncTool:实现复杂任务的优雅编排与高效执行
EnableAsync // 开启线程池@Autowired@Bean// 核心线程池大小// 最大线程数// 队列容量// 活跃时间// 线程名字前缀// 拒绝策略。
2025-10-25 07:12:35
511
原创 java/go 每日3题
用哈希集合存储字符串 word 中的所有字符,然后遍历 26 个字母,对于每个字母判断大写形式和小写形式是否都在哈希集合中。如果一个字母的大写形式和小写形式都在哈希集合中,则该字母是特殊字母,否则该字母不是特殊字母。首先,我们可以判断给定的单词长度是否大于等于 3,其次我们需要通过一次遍历来判断是否包含元音字母、辅音字母以及除去数字和大小写字母以外的其他字母。 是一个有效单词,则返回 。 中唯一的特殊字母是 。 中的特殊字母是 。 ,否则返回 。 ,否则返回 。
2025-10-22 10:10:11
876
原创 golang/java每日3题
先计算苹果总数,然后按照容量从大到小选择箱子装苹果,直到所有苹果均装入箱子为止。注意题目保证可以将包裹中的苹果重新分装到箱子中。使用列遍历,先扫一遍找到每一列的最大值,再扫一遍把 −1 替换成这一列的最大值即可。 个包裹中的苹果重新分装到箱子中,返回你需要选择的箱子的。,同一个包裹中的苹果可以分装到不同的箱子中。 相等,接着将其中每个值为 。 的元素替换为所在列的。 和另一个长度为 。 个包裹,其中第 。 个箱子的容量为 。 的整数矩阵 。 个包裹中装着 。
2025-10-21 10:07:00
323
原创 go语言每日3题
从 s[1] = 'A' 到 s[2] = 'b',按键变更。于是 arr = [3,2]。输入:nums = [1,2,3,4]输出:10解释:10 个移除递增子数组分别为:[1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4] 和 [1,2,3,4]。输入:nums = [6,5,7,8]输出:7解释:7 个移除递增子数组分别为:[5], [6], [5,7], [6,5], [5,7,8], [6,5,7] 和 [6,5,7,8]。
2025-10-20 11:17:42
862
原创 SpringBoot开发使用Mybatis,还是Spring Data JPA?
如果你的项目以简单CRUD为主,团队熟悉面向对象编程,追求开发效率,那么是更好的选择。它能让你快速原型开发,减少代码量。如果你的项目涉及复杂查询、高性能要求,或者团队有较强的SQL能力,那么Mybatis更合适。它提供了直接控制SQL的灵活性,便于优化和维护。在实际工作中,我经常看到团队混用两者——例如,用JPA处理简单操作,用Mybatis处理报表查询。但这需要良好的架构设计,避免混乱。最后,记住:框架是工具,关键是理解和需求。
2025-10-20 08:04:23
610
原创 Go 1.26 内置函数 new 新特性
1.26开始内置函数new的参数除了能接受一个类型名称,现在还可以接收任意的表达式了。在新版本中我们可以直接利用内置函数new不需要写帮助函数了,同时还能收获更高的性能。当然,1.26的新特性开发窗口还没结束,不能保证最终发布的功能和文章里介绍的一模一样,但看官方这架势这个新特性大概率是板上钉钉了,先用这篇文章尝个鲜也未尝不可。来源:https://www.cnblogs.com/apocelipes/p/19113233文末福利。
2025-10-18 16:10:49
776
原创 终于把机器学习中的超参数调优搞懂了!!
今天给大家分享机器学习中的一个关键概念,超参数调优在了解什么是超参数调优之前,我们需要先区分一下什么是参数和超参数。参数:是模型在训练过程中从数据中学习和优化得到的变量。例如,线性回归中的权重 和偏置 ,神经网络中的层间权重和偏置。超参数:是在模型开始训练之前,需要人为设定的变量,它们控制着模型的结构和训练过程。超参数的值不会在训练过程中自动学习。例如,学习率、正则化系数、神经网络的层数与节点数。关注推荐系统、计算广告、大数据技术领域,专注个人能力提升662篇原创内容公众号。
2025-10-17 08:14:04
666
原创 三大方案保证数据100%不丢失—— RabbitMQ高可靠性终极指南
现在,我们来到了数据传递的最后一站。为了避免“黑洞C”中消费者崩溃导致消息被误删,我们必须弃用默认的自动确认(Auto ACK),改为手动确认(Manual ACK)。Broker将消息推送给消费者的那一刻,就立即认为消息已被处理并将其删除。如果消费者拿到消息后还没来得及处理就挂了,消息就永远丢失了。Broker推送消息后,会等待消费者明确的“回执”。只有当消费者执行完所有业务逻辑,并手动调用后,Broker才会删除消息。如果消费者在处理过程中崩溃,或者手动调用了。
2025-10-13 08:52:22
392
原创 Redis 内存淘汰策略 LRU 和传统 LRU 差异
最近没被用过的,下次也大概率用不上。举个例子:你电脑桌面上放着常用的软件图标(微信、IDE),这些是最近常用的;而几个月没打开过的压缩工具,会被你拖到文件夹里。这就是 LRU 的思路:保留最近使用的,淘汰最近最少使用的。❝假设缓存容量只有 3,依次存入 A、B、C,此时缓存是 [A,B,C];若此时访问 A(A 变成最近使用),缓存顺序变为 [B,C,A]若再存入D(缓存满了),需要淘汰最近最少使用的 B,最终缓存是 [C,A,D]LFU的全称是。
2025-09-25 10:39:44
540
原创 枚举还能这么玩?用它彻底干掉丑陋的if-else链,代码瞬间清爽
if-else 不是原罪,但当你发现它开始“生长”成一棵参天大树时,就该警惕了。• 如何用枚举封装行为,消灭简单分支;• 如何结合 Spring 实现运行时策略分发,彻底解耦;• 如何设计可扩展的业务类型系统,让新增功能不再需要修改旧代码。记住一句话:好的代码不是写出来的,是“长”出来的。而枚举,就是让它健康生长的土壤之一。下次再看到满屏的 if-else,别忍了,拿起枚举这把“手术刀”,给你的代码来一次优雅的重构吧。
2025-09-25 10:08:45
630
原创 xxl-job中那些惊艳的架构设计
xxl-job 使用 netty http 的方式进行通信,虽然也支持 Mina,jetty,netty tcp 等方式,但是代码里面固定写死的是 netty http。
2025-09-20 15:25:34
355
原创 MySQL同步ES的5种方案
有些小伙伴在工作中可能遇到过数据库查询慢的问题,特别是模糊查询和复杂聚合查询,这时候引入ES(Elasticsearch)作为搜索引擎是个不错的选择。今天我们来聊聊MySQL同步到ES(Elasticsearch)的5种常见方案。希望对你会有所帮助。MySQL同步到ES(Elasticsearch)是现代应用开发中常见的需求,选择合适的同步方案对系统性能和可靠性至关重要。本文介绍了5种常见方案,各有优缺点,适用于不同场景。
2025-09-17 08:41:56
981
1
原创 外卖系统如何设计?
如果系统没准备,DB 会扛不住写压力,API 会超时,用户下不了单。写这篇拆解时,我总会想起第一次接 “做外卖系统” 需求的场景:对着产品经理画的 “美团同款” 原型图,手里的笔悬了半小时,满脑子都是 “百万订单怎么接”“骑手位置怎么更实时”“超时了怎么办” 的焦虑。消息队列缓冲:订单请求先写 Kafka,订单服务慢慢消费,比如每秒收 1000 单,消费 800 单,队列会暂存 200 单,但不会让后端直接被冲垮,同时设置队列最大长度,超过则提示 “系统繁忙”。
2025-09-15 11:05:37
1030
原创 isEmpty 和 isBlank 的区别
是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 。是否有一个为空,只有一个为空,就为true.是否真的不为空,不是空格或者空值 ,相当于。 , 必须所有的值都不为空才返回true。是否包含任何真空值(包含空格或空值)是否为真空值(空格或者空值)是否全部都不包含空值或空格。相当于不为空 , 。
2025-09-13 18:19:26
248
原创 比特币与以太坊:数字货币世界的双雄,你了解多少?
在数字货币的世界里,有两个名字如雷贯耳:比特币(Bitcoin)和以太坊(Ethereum)。无论是投资新手还是科技爱好者,都可能听说过它们,但你真的了解它们是什么,又有何不同吗?今天,我们就来深入浅出地解析一下这两位加密货币领域的“巨头”。
2025-09-12 13:57:36
1372
原创 代码重构的15个小技巧
相信很多小伙伴在日常工作中都会遇到这样的情况:接手了一个历史项目,代码像一团乱麻。或者自己写的代码随着业务的不断迭代,变得越来越臃肿难以维护。这时候,代码重构就显得尤为重要了。那么,如何进行高效的代码重构呢?这篇文章我跟大家大家一起聊聊15个实用的代码重构技巧,希望对你会有所帮助。在这篇文章中,我们探讨了15个代码重构的小技巧,从简单的提取方法到高级的设计模式应用。这些技巧可以帮助我们写出更加简洁、可读、可维护的代码。
2025-09-10 09:39:00
672
原创 解锁 SpringBoot 新姿势:轻松加载外部 Jar,实现功能按需扩展!
这种方式需要程序启动的某个节点,调用自定义类加载器去加载指定目录下的 Jar 包,时间点不是很好控制。但这个定制化程度比较高。//可以在这里调用自定义类加载。
2025-09-05 09:37:40
1083
原创 替代FinalShell,一款更高效、更智能的开源终端神器!
T-Shell 是一个让你摆脱繁琐的命令,不用每次去百度,去记事本里找的智能命令行终端应用。T-Shell不是一个全新的 shell,目的是为了取代FinalShell。它也不是轻量级的,但是比FinalShell内存占用小。
2025-09-05 09:36:34
324
原创 【初始web3】什么是web3
你是否还记得,曾经在社交媒体上发布精彩内容,平台却随意封禁你的账号?你是否曾疑惑,为什么你创造的数据价值亿万,而你自己却一无所获?这,就是Web2时代的痛。而Web3的到来,正试图彻底改变这一切。今天,就让我们拨开迷雾,彻底讲清楚Web2和Web3到底有什么区别。Web3并非要完全摧毁Web2。它是在Web2的基础上,引入所有权和价值交换的底层协议,解决的是“信任”和“产权”的根本问题。当然,Web3目前依然处于早期阶段,面临着性能瓶颈、用户体验复杂、监管不确定等巨大挑战。
2025-08-31 17:14:04
1132
原创 SpringBoot 的这些配置,建议不要用默认的
彼时 SpringBoot 初兴,万象更新,号称“开箱即用”“约定优于配置”,一时间风靡四方。开发者趋之若鹜,纷纷称快,仿佛自此架构之重可卸、配置之繁可省,一行main()即可气定神闲、纵横沙场。然则时光久远,方知此言非虚,却也未尽其真。所谓默认,不过是你未曾开口,框架自作主张。表面无碍,实则步步杀机,线上事故十有八九,皆因“未曾配置”的“默认”。回首往昔,实堪自嘲。曾自诩熟稔底层、精通原理,然于这些藏于阴影处的默认设定,竟茫然不觉。
2025-08-31 16:15:51
1075
原创 万字详解架构设计:业务架构、应用架构、数据架构、技术架构、单体、分布式、微服务都是什么?
我在这重新定义架构(见仁见智):软件架构指软件系统顶层结构设计。架构是经过系统性地思考,权衡利弊之后在现有资源约束下的最合理决策,最终明确的系统骨架:包括子系统、模块、组件,以及他们之间协作关系、约束规范、指导原则,并由它来指导系统各方面的设计和指导团队中的每个人思想层面上的一致。
2025-08-28 13:55:42
1123
原创 100万QPS系统如何设计?
最近很多小伙伴在面试时碰壁了,有些小伙伴反馈说:简历中的项目有点拿不出手,没有多少技术亮点。项目经验很难让面试官满意。他们问我要如何快速增加项目经验。其实,我的星球中就有7个不错的实战项目,如果你把其中两三个吃透,找一份合适的工作,应该问题不大。今天给大家介绍一下这些项目,感兴趣的小伙伴,可以加入星球学习,嘎嘎香。
2025-08-28 13:52:56
838
原创 索引夺命 10 连问
今天我们来聊聊让无数开发者又爱又恨的——数据库索引。相信不少小伙伴在工作中都遇到过这样的场景:明明已经加了索引,为什么查询还是慢?为什么有时候索引反而导致性能下降?联合索引到底该怎么设计才合理?别急,今天我就通过10个问题,带你彻底搞懂索引的奥秘!希望对你会有所帮助。简单来说,索引就是数据的目录。就像一本书的目录能帮你快速找到内容一样,数据库索引能帮你快速定位数据。-- 没有索引的查询(全表扫描)SELECT * FROM users WHERE name = '苏三';
2025-08-25 08:45:04
627
原创 聊聊负载均衡架构
三层设计原则五大核心原则冗余设计:至少2个负载均衡节点形成集群多级分流:DNS+LVS+Nginx+服务层分级调度动态调整:基于实时指标自动更新权重故障隔离:快速剔除异常节点灰度发布:权重式流量切换负载均衡的本质不是平均分配流量,而是让合适的请求到达合适的节点。当你能从流量调度中看到业务特征,从算法选择中预见系统瓶颈,才算真正掌握了高并发架构的精髓。
2025-08-25 08:31:49
617
原创 推荐程序员常用的后台开发环境和常用小工具
里面的run-shell是为了保持在当前的目录,配合zsh里面的PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'使用,有很多开发环境目录是软链的,不保持目录,代码编译的时候会有问题。https://github.com/sharkdp/bat 替换bat,个人配置如下.config/bat/config,zsh里面cat和man都替换成了bat,颜色更丰富,重点更突出。
2025-08-02 16:22:13
528
原创 【MQ】kafka同步和异步的区别
特性同步发送异步发送发送方式阻塞,等待响应非阻塞,不等待响应吞吐量低高延迟高低可靠性高(立即感知失败)较低(可能丢失未发送的消息)错误处理立即处理异常通过回调函数异步处理适用场景要求高可靠性的场景要求高吞吐量的场景优先选择异步发送:大多数场景下异步模式更优关键数据加同步:对可靠性要求极高的消息使用同步合理配置参数设置acks=all确保持久性启用防止重复调整和优化吞吐完善错误处理异步发送必须实现回调函数记录失败消息并实现重试机制监控与告警。
2025-08-02 16:21:12
812
原创 Java 中 JSON 字段不固定怎么搞序列化?用好这两个注解就够了!
特别适合那些字段不固定、可能需要动态扩展的 JSON 数据结构,比如配置项、参数列表、插件信息等。
2025-05-29 07:07:21
603
原创 加一个JVM参数,让系统可用率从95%提高到99.995%
一、前言关于 JVM 调优的话题网上众说纷纭:“99% 的情况下都不需要 JVM 调优,剩下那 1% 就是面试时背八股文”、“需要调优的不是 GC 参数而是业务代码”、“真正的高手会直接升级 JDK 版本”、“GC 调优是最后的手段”。以上说法都有道理,因为得益于 JDK 专家团队的长期优化,通常 JVM 在默认设置下就已能够提供出色的性能。然而默认参数可能无法满足某些极端性能和稳定性要求的特殊场景。此时可尝试研究该系统的内存使用规律和特点,并对症下药,针对性地调整某些参数。
2025-05-15 11:17:53
940
原创 为什么不推荐使用keySet()进行遍历HashMap ?
HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。两次遍历,第一次遍历所描述的是转为Iterator对象我们好像没有从代码中看见,我们看到的后面所描述的遍历,也就是遍历。其中keySet遍历了两次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。这里涉及到了继承的相关概念,大家忘记的可以找相关的文章看看,或者我也可以写一篇~~dog。和我们编写的是存在差异的,其中我们可以看到其中通过。
2025-05-15 11:05:57
1157
原创 如何优化一条SQL语句的性能?
优化三板斧定位:慢查询日志+执行计划分析切割:化繁为简拆分多步执行重建:符合业务场景的数据结构避坑口诀索引不是银弹,覆盖才是王道Join水深,能拆就拆Order By+Limit≠分页优化最后送上苏三的传秘方:当你优化SQL到怀疑人生时,不妨试试这三味药:删业务逻辑加缓存换数据库保证药到病除(老板打不打死你我就不管了,哈哈哈)!
2025-05-12 10:14:32
813
原创 【电商】用 Redis 实现过期订单关闭遇到的坑
这里说点题外话,使用 redis 过期监听或者 rabbitmq 死信队列做延时任务都是以设计者预想之外的方式使用中间件,这种出其不意必自毙的行为通常会存在某些隐患,比如缺乏一致性和可靠性保证,吞吐量较低、资源泄漏等。在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?时间轮是一种很优秀的定时任务的数据结构,然而绝大多数时间轮实现是纯内存没有持久化的。
2025-05-10 13:39:21
584
原创 MCP 规范新版本特性全景解析与落地实践
1. 安全性OAuth 2.1 强制 PKCE 和 HTTPS,消除隐式流风险,更适应 AI 工具的高权限场景。2. 通信效率Streamable HTTP 单端点设计简化架构,JSON-RPC 批处理减少网络开销。3. 工具可控性Tool Annotations 显式标记风险行为(如删除操作),支持自动化权限管理和前端适配。4. 多模态扩展新增音频流支持,补全语音交互能力,完善多模态生态。5. 开发友好性。
2025-05-10 13:37:17
1427
原创 OR算法+ML模型混合推理框架架构演进
其中计算密集的运筹学算法(Operations Research,OR)和机器学习模型(Machine Learning,ML)是主要性能热点,如OR部分计算量最大的「路径规划算法」和ML部分计算量最大的「送达时间预估深度学习模型(ETR)」计算量占比60%以上,若使用远程CPU承载此计算,集群规模将在万台以上,长尾问题明显,运维压力和资源成本难以控制。通过哨兵监控系统实时追踪本地推理进程的健康状态,当检测到本地推理进程故障时,系统自动将本地的推理请求切换到远程集群上,保障服务的可用性。
2025-05-09 08:32:06
929
原创 SpringBoot中的拦截器江湖
很多小伙伴在工作中遇到拦截需求就无脑写HandlerInterceptor,结果被复杂场景搞得鼻青脸肿。作为一名有多年开发经验的程序员,今天领大家到SpringBoot的山头认认6把交椅:这篇文章以梁山为背景的介绍SpringBoot中的拦截器,可能更通俗易懂。
2025-05-09 08:31:12
825
原创 AI Agent 十问十答,降低认知摩擦
以上来自 Langchain 的观点,信仰 LLM 的人一定不认可“ LLM 是门槛低,上限也低,容易上手,但对于复杂用例来说不够用”的论断,随着 LLM 更加智能,并通过对话的方式帮助用户来完善指令,并借助画布等产品交互方式,降低指令的优化难度。之所以业内有这样的争论,也许是因为 LLM 派信仰的是智能本身,可以通过指令来提升智能的确定性(参考第6个 Q&A 中的对话案例),Workflow 派信仰的是智能无法覆盖所有场景,必然有场景需要通过 Workflow 来精确决定数据的流动方式。
2025-05-08 08:13:12
965
原创 都说 SpringBoot 启动慢,知道慢在哪吗?
前段时间体验了几个开源的开发框架 ,发现他们的亮点主要集中在启动快 ,内存低上面。随之回想 SpringBoot ,发现自己并不能准确的说出 SpringBoot 启动慢的详细原因,所以才有了这篇文章。来,让我们详细的理解一下 ,SpringBoot 启动这么慢 ,是做了什么?整个过程中 ,Client 端的连接是最耗时的,其次是配置读取。也就是外部资源的加载更耗时。所以后面看看新版本的时候 ,来看一下他们是怎么解决的 ,以及其他优秀的开源组件又是怎么解决的。
2025-05-08 08:11:50
1190
Java 并发编程实战(英文版)
2017-01-07
Java RESTful Web Service实战 高清完整.pdf版下载
2017-01-01
Java RESTful Web Service实战 [韩陆著]
2016-12-31
Spring 3.x 企业应用开发实战】完整高清扫描版).pdf
2016-07-27
大型网站技术架构:核心原理与案例分析+李智慧
2016-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅