- 博客(107)
- 资源 (8)
- 收藏
- 关注
原创 Java并发编程的三大基石:可见性、原子性与有序性
在现代计算机体系中,CPU、内存与 I/O 设备之间的速度差异催生了多级缓存、线程调度和编译优化等技术,但这些优化也引发了 Java 并发编程中的三大核心问题:可见性、原子性 和 有序性。
2026-01-06 20:49:23
771
原创 【Spring AI 开发指南】ChatClient 基础、原理与实战案例
ChatClient是 Spring AI 与大语言模型交互的统一入口,通过流式 DSL 设计,兼顾简洁性与扩展性,支持多模型、可观测性、模板、历史上下文、结构化输出等高级特性,适用于从简单问答到复杂 Agent 系统的各类场景。
2026-01-01 00:25:50
614
原创 【原文翻译搬运】Code execution with MCP: Building more efficient agents
大多数MCP客户端会直接将所有工具定义预先加载到上下文中,使用直接工具调用语法向模型公开这些定义。工具描述占据了大量的上下文窗口空间,增加了响应时间和成本。在Agent连接到数千种工具的情况下,它们在读取请求之前需要处理数十万个token。MCP为Agent连接许多工具和系统提供了基础协议。然而,一旦连接了太多服务器,工具定义和结果可能会消耗过多的token,降低Agent效率。尽管这里的许多问题感觉新颖——上下文管理、工具组合、状态持久性——但它们都有来自软件工程的已知解决方案。
2025-12-18 21:12:10
1052
原创 【原文翻译搬运】Equipping agents for the real world with Agent Skills
Anthropic提出Agent Skills智能体技能体系,通过模块化方式为AI智能体赋予专业能力。该体系包含三个层级:基础元数据、核心内容和扩展文件,采用渐进式披露设计让智能体按需加载信息。技能可包含指令、脚本和代码工具,使通用智能体转化为专业助手。开发时建议从评估入手,逐步构建并优化技能结构,同时需注意安全风险。目前该体系已支持多个平台,未来将拓展技能生命周期管理和自主学习能力。实现方案包括直接由大模型判断或结合RAG检索两种方式,适用于不同规模的技能库场景。
2025-12-11 23:42:07
937
原创 Spring Boot 2.x => 3.x 升级指南
升级前务必全面测试,特别是涉及序列化/反序列化的组件(Jackson/Druid等)。
2025-12-10 20:42:47
440
1
原创 Java Development Kit 版本特性演进(持续更新中......)
本文系统梳理了从 JDK 8 到 JDK 25 的 Java 平台关键演进历程,重点介绍了各版本引入的核心特性与改进。内容涵盖 Lambda 表达式、Stream API、模块化系统(JPMS)、局部变量类型推断(var)、HTTP Client、文本块、记录类(Record)、密封类(Sealed Classes)、模式匹配、虚拟线程、结构化并发、向量 API、ZGC 垃圾回收器等重大语言与运行时增强。文档特别标注了 LTS(长期支持)版本(8、11、17、21、25),并说明预览特性的使用方式。
2025-11-26 00:30:23
647
原创 Java并发编程:线程生命周期
本文深入探讨了 Java 线程的生命周期,涵盖了线程的六种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING 和 TERMINATED,并详细解析了状态之间的转换过程。文章通过清晰的图示和代码示例,帮助读者理解线程在不同状态下的行为,并探讨了 interrupt() 和 stop() 方法的区别,为 Java 并发编程提供了宝贵的参考。
2024-06-09 17:27:13
1151
原创 Java并发编程:如何正确使用 volatile、synchronized 和 final 关键字
本文介绍了 Java 中的 volatile、synchronized 和 final 三个关键字的作用、原理以及使用场景。volatile 关键字可以保证可见性和有序性,synchronized 关键字可以保证可见性和有序性,同时还可以保证原子性,final 关键字可以保证变量的不可变。在实际开发中,需要根据具体的需求选择合适的关键字来保证程序的正确性和性能。
2024-06-04 23:07:27
1198
原创 AI大模型系列:编写高质量提示(prompt)的实践技巧
本文通过分析AI大模型的提示工程,从需求分析、背景澄清、人设构建、OKR设定到复盘等多个维度,提供了与AI有效交互的实用策略。通过这一系列策略,我们不仅能提升与AI交流的效率,还能确保需求被准确理解与满足,让智能工具发挥其最大潜能。
2024-05-09 07:15:00
2556
原创 AI大模型系列:编写高质量提示(prompt)的小技巧
要让这些AI大模型真正发挥其潜力,关键在于如何设计出有效的提示(prompt)。本文旨在介绍其基本概念、原理和流程,并通过大量实例展示如何制作出高质量、高效的提示。让我们一起解锁人工智能的无限潜力,让科技更好地服务于人类。
2024-05-04 08:00:00
3014
原创 LeetCode:盛最多水的容器
给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i, ai) 。在坐标内画 n 条垂直线,垂直线i的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。
2024-05-04 08:00:00
486
1
原创 TIPS:Java各类日期和时间转换(Date转LocalDateTime),看这一篇就够了
在Java开发中,日期和时间的处理随着JDK的迭代发展经历了几个阶段,从最初的java.util.Date和java.util.Calendar到Java 8(java.time包下的类)引入全新的日期时间API。
2024-05-02 08:00:00
1189
原创 AI大模型系列:自然语言处理,从规则到统计的演变
自然语言处理(Natural Language Processing,NLP)是人工智能的一个重要分支,主要研究如何让计算机理解、解释和生成人类语言。从自然语言处理的字面上来看,最重要的是“语言”二字,语言则是通过语法规则将一个个毫无联系的文字、数字和字母串联起来的。文字的出现是因为咱们祖先为了记录所见所闻和所思所想(),咱们的祖先再将文字、字母和数字进行信道编码就成为了我们日常使用的语言。
2024-04-27 19:38:30
1362
2
原创 布隆过滤器:原理、应用与误判容忍特性解析
布隆过滤器(Bloom Filter)这一高效数据结构的设计原理、应用价值及其在处理大规模数据查询时展现的独特优势。文章首先概述了布隆过滤器的基本构造,即通过多个独立哈希函数将元素映射到一个固定长度的位数组上,以“位集”形式表示元素集合。其核心理念在于利用概率性数据结构特性,牺牲绝对精确性换取存储和查询效率。
2024-04-12 12:59:13
1413
原创 AI大模型系列:文明基石,文字与数字的起源与演变
文字起源于人类需要记录更多信息的需求,而数字起源于人类需要计数财产的需求。文字经历了从图画到象形文字再到楔形文字的发展,而数字则经历了从计数符号到阿拉伯数字的发展。文章指出,文字和数字都是人类记录信息的重要工具,而其发展过程也体现了人类文明的进步。
2024-04-05 21:43:52
1546
原创 考古:IT架构演进之IOE架构
IOE架构由IBM小型机、Oracle数据库和EMC存储系统三大支柱构成,适用于金融、电信等关键业务领域。然而,IOE架构在扩展性和成本方面存在局限性。文章详细阐述了IOE架构的高可用实现机制,包括硬件冗余、数据库集群、存储冗余和集群技术等。同时,文章分析了“去IOE”运动的背景和意义,指出了IOE架构在互联网时代面临的挑战。最后,文章提供了进一步优化文章的建议,包括增加示例、展望IOE架构的发展方向等。
2024-04-05 15:51:25
2477
原创 Redis Scan指令解析与使用示例
scan指令相比于keys指令,采用分步遍历,不会阻塞线程,并提供了limit参数限制每次遍历的字典槽位数量。它采用高位进位加法进行遍历,以防止字典扩容缩容时重复遍历或遗漏key。尽管scan返回结果可能重复,遍历过程中数据改动可能导致漏掉key,但它是遍历大规模key列表的更好选择。
2024-03-30 07:00:00
715
原创 Redis持久化机制详解
众所周知Redis的所有数据都放在内存里,如果突然宕机,数据就会全部消失,从而Redis提供了数据持久化来保证其可靠性。Redis持久化机制有两种,一是快照,二是AOF日志。
2024-03-29 22:17:04
920
原创 Redis基础数据结构及操作命令解析
Redis的五种基础数据结构及其常用操作命令,其中包括string、list、hash、set、zset。
2024-03-29 22:04:37
1146
原创 DelayQueue:实现原理、主要方法和使用示例
DelayQueue是Java提供的一种高效定时任务队列,通过维护一个基于二叉堆的优先队列来实现延迟队列。本文详细介绍了DelayQueue的实现原理、主要方法和使用示例,帮助读者深入理解并掌握如何在Java中使用DelayQueue。同时,文章还涉及了Leader/Followers模式在DelayQueue中的应用,以及如何自定义延迟元素类。通过阅读本文,读者将能够更好地理解DelayQueue的内部机制,并在实际项目中灵活运用。
2024-03-28 07:00:00
2318
2
原创 信号量(semaphore):解决并发问题的有力工具
二进制信号量常用于实现互斥访问,其初始值为1以确保首次访问临界区;计数信号量则用于更为复杂的同步问题,如生产者-消费者模型,通过设置初始值大于0,允许一定数量的线程并发执行。在生产者-消费者案例中,通过三个信号量(互斥信号量、emptyBuffer和fullBuffer)确保了缓冲区操作的正确同步与互斥。同时强调了P、V操作顺序的重要性,指出V操作顺序可交换,而P操作顺序不当可能导致死锁。
2024-03-23 20:31:27
1207
原创 多线程应用中的性能优化:创建合适的线程数
在多线程应用中,为了降低延迟和提高吞吐量,我们可以采取两种主要策略:优化算法或充分利用硬件性能。要发挥硬件的极致性能,就需要使用多线程来提高CPU或I/O的利用率。CPU核心资源有限,因此创建多少线程合适就需要看多线程的应用场景是I/O密集型还是CPU密集型。对于CPU密集型,理论上“线程的数量 = CPU核数”是最合适的。在工程上,线程的数量一般会设置为“CPU核数+1”。对于I/O密集型,最佳线程数的计算更为复杂,可以通过公式“最佳线程数 = CPU核数 * [ 1 +(I/O 耗时 / CPU 耗时)
2024-03-20 21:55:31
1385
原创 操作系统启动背后的故事:BIOS、BootLoader和CPU控制权移交
以X86架构为例,BIOS的内存空间地址为CS:IP=0xf000:fff0,其中CS代表段寄存器,IP代表指令寄存器。通常位于硬盘的第一个主引导扇区。BIOS的任务就是在硬盘的这个特定位置找到BootLoader,并将其加载到内存中。在X86架构中,BootLoader通常被加载到内存的0x7C00位置,占据512字节的空间。每个阶段完成后,都需要将CPU控制权移交给下一阶段,以确保整个启动过程的顺利进行。随着UEFI(统一可扩展固件接口)的普及,传统的BIOS正在被逐渐替代,启动过程也有所变化。
2024-03-20 14:34:49
1034
1
原创 《模仿游戏》:天才团队如何破解密码学之谜
计算机科学相关的电影不少,有探索人工智能的《黑客帝国》、还有逻辑和结构学的《盗梦空间》、还有互联网创业的《社交网络》和《硅谷海盗》、还有探索虚拟世界的《源代码》,更甚有国产计算机科学科幻启蒙儿童电视剧《快乐星球》。其在主线中图灵设计并建造了一台名为“Colossus”的早期计算机,开启用机器打败机器的先河,最终破解德军的恩尼格玛密码系统,大大缩短了战争进程。1936年图灵发表了他的硕士论文《论可计算数及其在判定问题中的应用》,提出了“图灵机”的概念,一种抽象的计算模型,并为后来计算机的设计提供了理论基础。
2024-02-25 17:53:58
1610
原创 PoW算法,请出示你的证明
PoW算法,换言之工作量证明(Proof Of Work)算法,即通过一份证明来确认你做过一定量的工作。比如,你可以通过考取一张证书来证明你通过努力拥有了某个领域的专业技能。
2024-02-10 01:14:16
1097
原创 Quorum NWR算法,鱼和熊掌也可兼得
Quorum NWR算法中其名后跟的NWR就是其算法的三要素,N表示副本数、W表示写一致性级别、R表示读一致性级别。N、W、R值的不同组合,会产生不同的一致性。
2024-02-09 00:31:59
630
原创 Gossip,流言蜚语传播协议
Gossip协议是一种去中心化思想的分布式协议,解决数据在分布式集群中的传播和一致性。就如其字面意思流言蜚语一样,利用一种随机并带有传染性的方式,在一定时间内将信息传播到整个网络中,使得分布式中所有节点数据一致。
2024-02-08 00:24:33
755
Sublime Text for Mac v4.0(4166) 中文版 代码编辑器
2024-06-23
论文:HBase: A NoSQL database
2024-06-23
分布式论文:CAP Twelve Years Later: How the ‘Rules’ Have Changed
2024-06-23
分布式论文:Virtual Time and Global States of Distributed Systems
2024-06-23
Infuse Pro for Mac v7.8
2024-06-22
Time, Clocks, and the Ordering of Events in a Distributed System
2024-06-22
Nexus(Maven仓库私服)
2017-09-11
hibernate框架包_hibernate-distribution-3.6.10.Final-dist
2016-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅