- 博客(94)
- 资源 (6)
- 收藏
- 关注
原创 yyds,JDK 25 终结 import,可以像 Python 一样简单粗暴了
不知道大家第一次写Java程序时,是否有过这样的困惑?为什么`String`不用导入就能直接用,但`List`就必须写`import java.util.List;`?用星号`*`导入某个包下所有类(比如`import java.util.*;`)会不会有性能损耗?`Stream`类到底在`java.util.stream`还是`java.util.function`包下?这些看似基础的导入问题,不仅困扰着Java新手,连不少资深开发者在切换场景时也会频频卡顿。
2025-12-08 17:05:19
1008
原创 Go 重试机制终极指南:基于 go-retry 打造可靠容错系统
在分布式系统、API 调用、数据库操作等场景中,网络抖动、服务临时不可用等问题时有发生。重试机制作为容错设计的核心手段,能有效提升系统稳定性——但不合理的重试策略(如无限制重试、固定间隔重试)可能导致雪崩效应或资源耗尽。本文将深入解析 `sethvargo/go-retry` 这个轻量且强大的 Go 重试库,带你从原理到实践,构建灵活、安全、高效的重试逻辑。
2025-11-19 16:10:01
591
原创 如何防止重复提交订单?——从踩坑到优雅落地的实战指南
一次点击,下单成功;两次点击,客服崩溃。 重复提交订单的问题,几乎每个后端都遇到过。今天咱们就从底层逻辑到实战代码,聊聊这个老生常谈却又暗藏玄机的话题。
2025-11-11 16:28:52
950
原创 Java 25 到来:不仅是升级,更是一次时代声明
Java 25作为最新的长期支持版本(LTS),标志着Java语言在第四个十年的重大进化。该版本聚焦"轻、快、稳、智"四大特性:简化语法(实例main方法、模块导入声明)、优化性能(紧凑对象头、AOT剖析)、增强稳定性(LTS支持)和提升并发能力(Scoped Values、结构化并发)。同时引入密码学API提升安全性,通过紧凑对象头和AOT优化显著减少内存占用和启动时间。建议新项目直接采用Java 25,现有项目可逐步迁移测试。这个版本证明Java依然在不断进化,保持其作为企业级主力语
2025-10-30 13:29:22
869
原创 Java 开发必看:UUIDv7 终于标准化了!这次真香[特殊字符](基于 uuid-creator 实战)
UUIDv7正式成为RFC标准,解决了传统UUID无序和分布式冲突问题。它具备时间有序性、高唯一性和兼容性,适用于数据库索引和分布式系统。Java开发者可通过uuid-creator库轻松生成UUIDv7,比UUIDv4和雪花算法更优。该方案支持多线程并发,节省存储空间,是新一代ID的最佳选择。升级简单,一行代码即可实现,推动系统现代化演进。
2025-10-17 10:56:47
1158
原创 从面试翻车到原理吃透:详解 synchronized 锁不住 Integer 的真相
本文探讨了Java并发编程中一个典型陷阱:用synchronized锁Integer对象导致线程安全问题。核心原因在于:1)Integer是不可变对象,每次++都会创建新对象;2)synchronized锁的是对象实例而非变量名。文章提出三种解决方案:锁类对象、专用锁对象和使用AtomicInteger(推荐)。面试真正考察的是对不可变对象、锁原理的深入理解,以及方案选型能力。这提醒开发者:基础原理比API使用更重要,简单问题往往能暴露真实技术功底。
2025-10-13 10:28:09
273
原创 前端项目从 Windows 到 Linux:构建失败的陷阱
摘要: 在Docker中运行老项目(Node.js 8 + Angular + node-sass)时,遇到binding.node缺失报错。该文件是node-sass的核心二进制依赖,需匹配特定系统、架构和Node版本(如Linux/musl + Node 8需ABI 57)。解决方案包括:1. npm rebuild node-sass自动下载;2. 手动从GitHub Releases下载对应文件;3. 源码编译(需Python2等工具)。建议避免跨环境安装依赖,谨慎使用Alpine镜像,并尽早迁移至
2025-09-29 13:47:30
1060
原创 破解 JetBrains 的学生,后来都成了它的 “推销员”:一场用习惯换市场的长期战
摘要:知乎话题探讨JetBrains软件在中国被频繁破解现象。文章回忆大学生共享破解版的普遍现象,分析JetBrains的商业策略:容忍个人用户盗版以培养使用习惯,待用户进入企业后推动正版采购。企业版才是其主要收入来源,个人用户实为"潜在客户"。随着用户成长,从破解转向正版成为趋势,开源贡献者还可申请免费License。文章指出,用好工具付费是程序员成长的必经之路。
2025-09-15 18:42:49
327
原创 凌晨 4 点的线上 CPU 告警:一场历时 4 小时的故障排查与架构优化全记录
核心系统 CPU 告警,经排查,订单服务中自定义冒泡排序(O (n²))致高耗,Full GC 频繁、数据库全表扫描为辅助问题。通过 Java 8 并行流重构算法、加复合索引、Docker 资源隔离、Prometheus+Grafana 监控,4 小时后系统恢复,CPU 降至 30% 以下,响应达毫秒级。
2025-09-12 11:15:17
1129
原创 Go 语言中的 Option 模式,让你写出可扩展性好的代码
Option 模式最早由 Rob Pike 在 Go 社区推广。核心思想是把可选参数封装成一个函数传入目标构造函数,让这些函数负责设置对象的可选配置。本文将系统介绍 Option 模式的设计动机、常见实现、变体、进阶用法和实践建议,并以 Server 示例展开实现细节、错误处理、安全性、嵌套配置与实际应用场景(如数据库连接池、HTTP 客户端)等,帮助你把理论在工程中落地。目录。
2025-08-28 18:01:31
1076
原创 生产环境慎用 context.Background ():你的系统可能在 “空转”
在 Go 语言的开发世界里,context.Background()似乎是一个出镜率极高的存在。不少开发者在编写代码时,随手就会敲出这个函数,仿佛它是一把能打开所有上下文之门的万能钥匙。但今天,我要严肃地提醒大家:context.Background()绝非万能,在生产环境中滥用它,可能会给你的系统带来意想不到的麻烦。
2025-08-18 17:55:56
336
原创 Kimi 的这几个提示工程Prompt Engineering,值得学习
在当今多元且丰富的创作领域之内,无论是商务情境中的会议纪要精心整理,还是网络空间里爆款文案的匠心打造,亦或是艺术领域中的电影评论精妙撰写、诗歌创作的灵动挥洒,以及旨在提升阅读体验的文字排版巧思设计,均具备其独一无二的要求与迷人魅力。本文将会向您悉心推介一系列专业的创作辅助工具,它们恰似身怀超凡绝技的魔法大师,能够在各类不同的创作任务中实施精准且有力的出击。
2024-11-16 17:09:09
633
原创 探索高效的 Prompt 框架:RBTR 提示框架的奥秘与优势
通过对 RBTR 框架进行深入的应用实践与案例细致解析,我们能够显著地察觉到这一独特方法论在处理具体问题过程中所展现出的强大有效性。具体而言,精确地界定角色定位,如同为解决问题找准了关键的切入点;深度地剖析背景,犹如为后续行动筑牢了坚实的根基;合理地设定具体任务,恰似为前行指明了清晰的方向;恰当地补充要求,则像是为达成目标添加了有力的助推剂。这一整套紧密相连的步骤,全方位地呈现出如何有条不紊、富有策略性地攻克难题,达成系统性的问题解决之道。
2024-11-16 16:33:39
1619
原创 Reddit 舞台上的 AI:解码用户生活密码,隐私警钟敲响
总而言之,尽管AI在分析社交媒体数据方面展现出强大的能力,它同样带来了新的隐私和伦理挑战。在未来,如何平衡技术发展与个人隐私的保护,将是每一个技术从业者、立法者和普通网民共同面对的问题。AI的未来,不仅仅关乎技术本身,更关乎我们如何在日益数字化的世界中,维护个人的尊严与自由。在这场技术与伦理的博弈中,AI的力量和人类的智慧同样至关重要。
2024-11-14 12:23:58
1345
原创 如何让 AI 交流更高效:明确目标与细化需求
这便极有可能导致 AI 所给出的回应显得较为宽泛和笼统,比如只是简略地介绍几位具有相当代表性诗人的大致情况,而无法深入和精准地满足你的具体需求。反之,如果我能够精准无误、清晰明了地提出:“我想了解中国古代诗人杜甫的生平以及作品”,那么 AI 便能够有的放矢、极具针对性地为我呈上杜甫的生平详细介绍、其主要的文学作品,还有他独特的思想特色等一系列丰富而详尽的信息。这样的回答显然更为确切和具有显著的指向性,对于我深入且全面地了解杜甫的方方面面,无疑具有极大的帮助和促进作用。
2024-11-13 23:18:15
717
原创 解锁 AI 新境界:元素碰撞的神奇应用技巧全解析
在当今科技飞速发展的时代,ChatGPT 作为一款强大的人工智能工具,为我们开启了全新的创意探索之门。当我们让 ChatGPT 去进行大量的元素碰撞时,相较于传统人力的联想方式,它能够凭借其强大的算法和海量的数据处理能力,直接由 AI 去创造出更为丰富多样的可能性。
2024-11-09 17:22:41
477
原创 AI 对话中的角色设定:提升质量与挖掘深度的关键
在与 AI 对话之际,角色设定堪称提升对话质量的妙法。它宛如一盏明灯,为模型照亮前行的道路,赋予其清晰的框架与指引。就像在戏剧舞台上,导演递予演员角色剧本,使其洞悉角色灵魂,从而完美代入。如此,模型便能依据角色的背景特质,更为精准地编织回答之网。
2024-11-07 16:54:44
2698
原创 Sam Altman 万字访谈总结:AI 发展的深度洞察与展望
Altman定义AI智能体为能接受长期任务且执行中几乎无需督导的存在。人们常误解智能体用途,如仅认为是帮订餐打电话等简单任务,实际上更应关注像聪明资深同事般能在项目中协作、独立完成任务并高质量交付成果的智能体,以及人类因带宽限制无法完成的大规模并行任务,如同时联系300家餐厅找最佳餐食或优惠。
2024-11-06 14:59:51
830
原创 从神秘到清晰:通过持续对话让 ChatGPT 输出更贴合需求
在这种对话式的交流中,信息的准确性和完整性得到了有效保障。这种从简到繁的方式,不仅避免了初始设定的不确定性,还提高了沟通的效率,使得最终的旅行计划能够准确对接我的需求。而通过持续对话,我们可以逐步明确喜好,比如“我偏爱素食”或“我想尝试一些地道的地方美食”,ChatGPT便能够更精确地为我们筛选出符合要求的餐厅,并在每次回答时加以调整,确保推荐的餐馆更加符合我们的期待。在这个过程中,ChatGPT不断根据我的反馈提出新的问题,这些问题帮助它更深入地了解我的需求,从而使得生成的内容更加丰富、精准。
2024-11-06 00:20:01
1298
原创 给模型时间“思考”
在与语言模型互动时,提供充足的上下文信息是至关重要的。通过增加背景知识、细化任务步骤,或引导模型逐步推理,可以赋予模型更多“思考”的时间,从而提升响应的准确性和连贯性。
2024-11-03 21:47:46
477
原创 OpenAI 提示工程指南详解
提示工程(Prompt Engineering)是创建有效提示以引导语言模型生成所需输出的艺术与科学。随着语言模型的不断发展,学会有效地与它们交互变得至关重要。本指南旨在为用户提供有关如何设计和优化提示的实用建议,以便从语言模型中获取最佳结果。
2024-11-03 21:14:28
1316
2
原创 Apache-Seata 拯救分布式系统数据一致性的开源神器
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。它主要用于解决分布式系统中数据一致性的问题。在分布式系统中,一个业务操作可能会涉及多个服务(如订单服务、库存服务、支付服务等),这些服务可能分布在不同的服务器上,使用不同的数据库。Seata就是要保证在这样复杂的环境下,这些服务操作的数据能够保持一致性,就像在单体应用中一样。在一个电商系统中,用户下单购买商品这个操作涉及订单创建、库存扣减和支付处理三个服务。
2024-11-02 14:26:51
1151
原创 分享几款AI产品(三)
KimiChat 是由月之暗面科技有限公司精心开发的一款 AI 智能助手,在智能交互领域展现出了独特的优势。它具备卓越的多语言对话能力,无论是中文还是英文,都能与用户进行流畅且准确的交流。不仅如此,其长文本处理能力更是令人瞩目。它能够支持多轮总和最多 200 万字的输入和输出,这使得它在处理长文本写作、翻译以及完整代码编写等复杂任务时游刃有余。例如,在文学创作中,用户可以借助 KimiChat 进行长篇故事的构思和撰写,它能够根据用户的需求提供情节建议、人物塑造等方面的帮助;
2024-10-28 16:10:19
894
原创 分享几款AI产品(二)
阿里云百炼是阿里云推出的大模型,具备多轮对话、文案创作、逻辑推理等能力。它擅长分析文档和提炼关键信息,具有较强的灵活性和适应性。
2024-10-28 15:54:28
537
原创 分享几款AI产品(一)
ChatGPT 是由 OpenAI 开发的聊天机器人模型,于2022年11月30日发布。它基于大型语言模型构建,通过大量数据训练,能够理解和生成人类语言。ChatGPT 利用深度学习算法和自然语言处理技术,可以分析文本、理解意图并生成回答。它能够进行流畅的对话,拥有广泛的知识储备,并支持多语言。此外,它还能完成多种任务,如撰写文章、创作故事等,并能根据用户反馈进行自适应学习。
2024-10-28 15:50:22
738
原创 SQL 优化之旅:10 大经典场景全解析
在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。
2024-10-24 11:58:47
934
原创 Java Stream API:让集合操作更优雅的利器
Java 8引入的Stream API是一种处理集合数据的高级抽象,它允许以声明式的方式对集合进行操作,使得代码更加简洁和易读。Stream不是数据结构,它不会存储数据,而是对数据源(如集合、数组等)进行一系列的操作,并返回一个新的Stream或一个最终结果。Stream操作可以分为中间操作(Intermediate Operations)和终端操作(Terminal Operations)。中间操作会返回一个新的Stream,所以可以链式调用多个中间操作,如filtermap等;
2024-10-22 18:11:03
1102
原创 认证授权的设计与实现
每个网站,小到一个H5页面,必有一个登录认证授权模块,常见的认证授权方式有哪些呢?又该如何实现呢?下面我们将来讲解SSO、OAuth等相关知识,并在实践中的应用姿势。
2024-10-22 10:37:18
815
原创 Web安全实践
安全无小事,成败在细节,网络有风险,灾难弹指间。安全一般情况下看不见,在你周围漂浮着,显现出来后,往往会刻骨铭心。正因为安全看不见,所以往往不受重视,因为感知到的概率真的太低,用户的第一感知是他看得见、摸得着、嗅得到、品得出的东西,实实在在的东西,而不是那种虚无缥缈的东西,我们对概率低的东西往往默认选择忽略。
2024-10-16 09:38:21
1291
原创 Go 语言开发:强大工具推荐助你高效编程
新一代编程 “神语言” Go,以其卓越的开发效率与运行效率,在近几年的编程领域犹如一颗璀璨新星,光芒四射。众多编程大神纷纷投身其中,使得 Go 语言日益成熟,开源库代码如雨后春笋般不断涌现。毫无疑问,当下有不少编程新手,亦或是拥有其他语言开发经验的老手渴望踏入 Go 语言的精彩世界。那么,正所谓 “工欲善其事,必先利其器”,在开启 Go 语言之旅前,该如何精心挑选适合的开发工具呢?现在,就让我们一同探寻目前主流的 Go 语言开发工具吧。
2024-10-12 11:53:32
797
原创 go 生成良好的随机和唯一的id
想像一下你正在开发一个记事本App。每一条记事都需要一个唯一ID。如果你能协调,生成唯一ID是一件非常简单的事。最简单的方式就是通过使用数据库:使用AUTOINCREMENT属性的列,然后当你插入一条新的记事的时候,数据库将会生成一个唯一ID。但假如你不能协调呢?列如,你想要你的App离线的时候也能生成唯一ID,这时候它是无法连接上数据库的。在无法协调的情况下生成唯一ID的请求通常来自于分布式系统。一个简单的解决方案是生成一个随机ID。
2024-10-11 09:28:57
1082
原创 剖析 Redis:应对雪崩、穿透和击穿的实战秘籍
用户的数据通常存储在数据库中,而数据库的数据存放在磁盘上。磁盘的读写速度在计算机硬件中可以说是最慢的。如果用户的所有请求都直接访问数据库,当请求数量增多时,数据库很容易崩溃。因此,为了避免用户直接访问数据库,会使用 Redis 作为缓存层。因为 Redis 是内存数据库,我们可以将数据库中的数据缓存在 Redis 里,相当于把数据缓存在内存中。内存的读写速度比硬盘快好几个数量级,这样能大大提高系统性能。引入缓存层后,就会出现缓存异常的三个问题,即缓存雪崩、缓存击穿和缓存穿透。
2024-10-07 16:32:07
705
原创 深度解析:从浏览器输入链接到页面展现的奇幻历程
当我们在浏览器中输入一个网址,例如:example.com,按下回车键后,会发生什么呢?主要会发生以下这些过程:域名解析、建立HTTP连接、发送HTTP请求、数据传输、渲染网页、断开HTTP连接。
2024-10-04 17:32:11
2237
原创 解开 Golang‘for range’的神秘面纱:易错点剖析与解读
在 Go 语言的编程世界中,充满了各种有趣的特性和挑战。其中,一些看似简单的代码结构可能会隐藏着意想不到的结果。今天,我们就来探讨一下在 Golang 中一个容易让人产生疑惑的地方——for range循环。相信很多 Go 开发者在日常编程中都会频繁使用for range,但你是否真正理解它的内部工作机制呢?让我们通过一个具体的例子来深入剖析这个问题,提升我们对 Go 语言的理解和掌握程度。
2024-10-02 14:54:10
768
原创 10 大经典 SQL 优化实例,带你解锁数据库高效性能密码
在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。
2024-10-01 23:45:27
1778
原创 优雅使用 MapStruct 进行类复制
使用`MapStruct`,在企业级应用中,经常需要在不同类型的对象(如 DTO 和 DO、VO 和 PO 等)之间进行转换。MapStruct 通过在编译时基于接口定义生成转换代码,大大简化了这个过程。
2024-09-28 22:01:01
1119
原创 谈一谈 DDD
DDD,全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可以很容易地实现架构演进。DDD将项目的主要焦点放在核心领域和领域逻辑上。基于一个模型进行复杂的设计,在技术和领域专家之间发起创造性的协作,迭代地切割问题的概念性核心。DDD是面向对象的设计思想,是面向对象设计的一种升华。
2024-09-23 22:36:38
1057
原创 将 Go 作为脚本语言用及一些好用的包
创建一个新的命令对象。可以设置命令的名称、简短描述、详细描述、执行函数等。cmd.Use:设置命令的名称和用法。cmd.Short:设置命令的简短描述。cmd.Long:设置命令的详细描述。cmd.Run:设置命令的执行函数。:将多个子命令添加到根命令中。:添加一个字符串类型的命令行参数,带有短名称(-p)和长名称(–paramName)。可以指定默认值和参数描述。:添加一个整数类型的命令行参数。:添加一个布尔类型的命令行参数。:执行命令。如果命令执行过程中出现错误,会返回一个错误对象。
2024-09-23 17:21:20
1164
原创 SpringBoot整合MyBatis-Plus
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2024-09-21 18:24:11
948
原创 Java23 ta来了,你发任你发,我用Java8
Java 23 来啦!和Java 22 一样,这也是一个非 LTS(长期支持)版本,Oracle 仅提供六个月的支持。下一个长期支持版是 Java25,预计明年 9 月份发布。JDK 23 提供了 12 项增强功能,这些增强功能的重要性足以保证他们自己的 JDK 增强提案 - JEP,包括 8 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能和 JDK 中包含的工具的改进。
2024-09-19 16:27:45
1385
json相关包json-lib
2012-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅