自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【AI Agent基础 | 第五篇】简析MCP(模型上下文协议)

本文介绍了模型上下文协议(MCP)的概念及其核心架构。MCP是一种开放协议,旨在为大模型与外部数据源、工具和工作流提供标准化连接方式。其架构包含三个核心组件:MCPHost(用户入口)、MCPClient(连接桥梁)和MCPServer(能力提供端)。文章详细阐述了MCP的工作流程,包括初始化连接、请求处理、结果返回等步骤,并提供了代码示例说明具体实现方式。最后对比了MCP与FunctionCalling的区别,指出MCP更适合复杂系统接入场景,能更好地支撑多轮对话和组合调用。

2026-04-02 14:58:06 1437 4

原创 【MySQL | 第三篇】 MySQL索引详解

本文系统介绍了MySQL索引的核心概念、优缺点、底层实现原理及优化策略。索引通过B+树数据结构显著提升查询性能,其优点包括加速查询、保证数据唯一性和优化排序分组,但会占用额外空间并影响DML操作效率。重点解析了B+树特点、聚簇/非聚簇索引区别、主键/二级索引关系、覆盖索引机制及联合索引的最左前缀原则。同时总结了索引创建规范(如区分字段类型、联合索引排序)和防止失效的注意事项(如避免函数操作、模糊查询%前置等)。通过深入理解索引原理和优化技巧,可有效提升数据库查询性能。

2026-04-02 14:03:58 1628 2

原创 【MySQL | 第二篇】 MVCC的底层实现(多版本并发控制)

MVCC(多版本并发控制)是InnoDB实现非阻塞读的核心机制,通过快照读(不加锁读取历史版本)和当前读(加锁读取最新版本)两种方式实现读写并发。MVCC依赖隐藏字段(事务ID、回滚指针)、undo log和ReadView实现,其中ReadView根据隔离级别(RC/RR)在不同时机生成。写操作则采用锁机制(X锁、间隙锁等)保证一致性。MVCC仅支持RC和RR隔离级别,通过版本链解决不可重复读问题,而写写互斥通过锁机制自动处理。事务ID在首次写操作时分配,优化了只读事务的资源使用。

2026-03-26 13:16:11 2003 3

原创 【LeetCode | 第七篇】算法笔记

本文介绍了回溯算法在解决排列组合类问题中的应用,包括全排列、子集、电话号码字母组合、组合总和和括号生成五种典型问题。针对每种问题,文章提供了清晰的解题思路和Java实现代码,重点分析了回溯过程中的关键步骤:选择元素、递归构建、回溯撤销和剪枝优化。通过使用used数组、startIndex、level标记等技巧,有效避免了重复解的产生,提高了算法效率。文章还对比了不同解法的优缺点,如括号生成问题的暴力枚举与剪枝优化两种实现方式,展示了回溯算法在解决组合问题时的灵活性和强大功能。

2026-03-25 10:51:32 1534 1

原创 【MySQL | 第一篇】 深入理解三大日志(undo Redo Bin)

MySQL三大日志机制详解:UndoLog用于事务回滚和MVCC实现,记录数据修改前的版本;RedoLog确保事务持久性和崩溃恢复,记录数据页物理变更;BinLog用于主从复制和数据恢复,记录逻辑SQL变更。三者协同工作:事务执行时先写Undo和Redo,提交时通过两阶段提交(prepare→写BinLog→commit)保证数据一致性。崩溃恢复时根据日志状态判断:Redo标记commit直接重做,prepare状态需检查BinLog完整性,未提交事务则通过Undo回滚。不同日志各有侧重,共同构成MySQL

2026-03-25 10:39:40 2095

原创 【JchatMind智能体 | 第七天】引入知识库与 RAG

本文介绍了基于Agent视角的RAG(检索增强生成)技术实现。主要内容包括:1)RAG在Agent系统中的定位,将其视为普通工具而非特殊模式;2)知识库构建与检索两条主线,包括文档拆分、向量生成和存储入库流程;3)采用Markdown章节标题作为拆分单元的设计考量;4)仅对标题生成Embedding而非全文的优化策略;5)相似度搜索的核心实现逻辑。文章强调RAG作为系统能力,通过PostgreSQL+pgvector实现高效检索,最终以KnowledgeTool形式为Agent提供知识查询入口。整体呈现了一

2026-03-25 10:14:06 1868

原创 【JchatMind智能体 | 第六天】Agent Loop 的第一次落地

本文介绍了JChatMindV2智能代理系统的升级过程,重点阐述了如何从仅能聊天的V1版本演进为具备工具调用能力的V2版本。系统通过引入AgentLoop机制,将代理功能划分为Think决策、LLMs推理和Execute执行三大模块,形成完整的思考-执行循环。V2新增了工具管理、执行控制和状态维护等关键组件,采用手动接管工具调用流程的设计思路,确保系统拥有完整的执行轨迹记录和流程控制能力。文章详细解析了Think阶段的决策判断、Execute阶段的工具调用实现,以及将两者封装为step循环单元的设计理念,最

2026-03-19 15:39:07 1935 3

原创 【JUC并发 | 第九篇】Semaphore 和 CountDownLatch

本文深入解析Java并发工具Semaphore和CountDownLatch的底层实现原理。Semaphore基于AQS共享模式实现,通过state变量控制并发访问线程数,支持公平/非公平许可获取机制,核心方法acquire()和release()分别对应AQS的共享获取与释放逻辑。CountDownLatch同样基于AQS,通过state表示倒计时数,await()阻塞线程直至state归零,countDown()递减计数器并在归零时唤醒所有等待线程。两者关键区别在于:Semaphore用于资源并发控制且

2026-03-19 15:32:19 1989

原创 【JUC并发 | 第八篇】AQS的底层原理

本篇内容围绕 Java 并发包核心基础组件 AQS(抽象队列同步器)展开详解,同时关联 JUC 并发体系的 Future、CompletableFuture、线程池、JMM 内存模型等相关知识,核心阐述了 AQS 的核心定位、底层原理及不同并发工具基于 AQS 的实现差异。AQS 作为并发同步工具的底层框架与模板类,封装了通用核心逻辑,开发者仅需实现少量抽象方法即可自定义同步器,其底层以状态管理 + 队列调度 + 自旋 / 阻塞为核心,通过原子性同步状态(state)、CLH 双向等待队列、LockSupp

2026-03-17 11:25:00 2006

原创 【JchatMind智能体 | 第五天】实现带记忆的聊天功能

本文介绍了一个基于SpringAI的最小Agent实现项目JChatMindV1。该项目通过ChatClient调用大模型能力,使用ChatMemory维护对话上下文,实现基本的聊天功能。文章详细解析了Agent的核心组件:系统提示词、会话ID、状态管理等,并演示了多轮对话的记忆原理。测试案例验证了通过保存对话历史实现"记忆"的效果。该项目虽简单但包含了Agent的核心逻辑,为后续开发复杂Agent奠定了基础。文章强调模型本身无记忆,所有"记忆"都是通过维护上下文实现

2026-03-17 11:13:19 1891

原创 【LeetCode | 第六篇】算法笔记

本文总结了二叉树相关的常见算法题解,包括:1)二叉树展开为链表的递归和后序两种解法;2)通过前序和中序遍历构造二叉树的递归分治方法;3)路径总和III的前缀和哈希表和双重递归两种思路;4)二叉树的最近公共祖先递归解法;5)二叉树最大路径和的后序递归计算。每种解法均给出核心思路和关键代码实现,并标注了时间/空间复杂度。文章还提供了LeetCode系列算法笔记的CSDN链接,方便读者查阅更多相关内容。

2026-03-15 10:07:37 1583

原创 【JchatMind智能体 | 第四天】Spring AI 集成与多模型支持

本文介绍了如何在SpringAI框架中统一管理多模型调用,实现Agent系统的工程化开发。通过SpringAI的ChatClient抽象层,开发者可以屏蔽不同模型厂商的API差异,专注于Agent行为设计。文章详细说明了接入SpringAI的三个步骤:使用BOM管理依赖、引入模型starter、配置APIKey参数。重点阐述了ChatClientRegistry机制如何实现模型的动态调度,使Agent能通过配置数据绑定任意模型。最终将各类模型转变为可配置、可切换的系统基础设施,实现了模型接入与Agent逻辑

2026-03-15 10:00:40 1568

原创 【JUC并发 | 第七篇】简析Future 和 CompletableFuture类

Java异步编程中的Future和CompletableFuture:Future接口用于管理异步任务执行结果,提供取消、状态查询和结果获取功能。CompletableFuture作为增强实现,提供四大优势:1)简化异步任务创建执行;2)支持链式调用实现任务流水线;3)提供多任务组合编排能力;4)内置灵活异常处理机制。特别推荐生产环境使用自定义线程池,避免共享线程池的资源竞争问题。这些特性共同解决了传统异步编程中任务协调复杂、阻塞等待和异常处理繁琐等痛点,显著提升开发效率和系统性能。

2026-03-15 09:52:50 1409

原创 【LeetCode | 第五篇】算法笔记

本文总结了二叉树和二叉搜索树的常见算法:1. 层序遍历采用BFS队列实现;2. 有序数组转BST使用递归分治;3. 验证BST可通过递归约束边界或中序检查升序;4. 查找第K小元素利用中序遍历特性;5. 右视图可通过BFS取每层末节点或DFS优先右子树实现。所有解法均提供Java代码实现,涵盖递归和迭代两种思路。

2026-03-14 10:10:07 1596

原创 【JchatMind智能体 | 第三天】数据模型设计

本文介绍了智能体(Agent)系统的数据模型设计,将持久化数据分为三类:Agent与对话状态、对话消息记录、系统知识库。详细设计了6个核心表:Agent表(固化配置)、ChatSession表(对话锚点)、ChatMessage表(全流程追溯)、KnowledgeBase表(知识边界)、Document表(原始资料)、ChunkBgeM3表(RAG载体)。重点阐述了各表的功能定位和相互关系,强调了配置与代码解耦、RAG"向量检索+文本参考"等设计原则。该数据模型设计为Agent系统提供了

2026-03-14 10:02:14 1654

原创 【JUC并发 | 第六篇】深入理解线程池

本文深入解析了Java线程池Executor框架的核心原理与最佳实践。主要内容包括:1)线程池的基本概念与优势(资源复用、性能提升、统一管理);2)线程池创建方式对比(直接构造 vs Executors工具类);3)关键参数详解(核心/最大线程数、队列类型、拒绝策略等);4)任务处理流程与线程生命周期;5)线程池大小配置公式(CPU/IO密集型场景);6)常见问题解决方案(线程命名、异常处理等)。特别强调生产环境应避免使用Executors内置线程池,推荐手动配置ThreadPoolExecutor,并给出

2026-03-14 09:53:45 1969

原创 【LeetCode | 第四篇】算法笔记

本文总结了二叉树相关算法题的解题思路,包括中序遍历、最大深度、翻转、对称性判断和直径计算。通过递归和迭代两种方法实现中序遍历,递归法按照左-根-右顺序访问节点,迭代法使用栈模拟递归过程。计算最大深度时,递归法取左右子树深度的较大值加1,迭代法则采用BFS按层计数。翻转二叉树通过交换左右子树实现,递归法和迭代法均可完成。判断对称二叉树需要验证左右子树镜像对称。计算直径则通过递归计算每个节点的左右子树深度之和,维护全局最大值。文章提供了详细的代码实现和思路分析,适合算法学习者参考。

2026-03-13 21:18:35 1588

原创 【JchatMind智能体 | 第二天】为何选 PostgreSQL + pgvector 而非 MySQL?

本文探讨了RAG智能体项目对数据库的特殊需求,重点对比了PostgreSQL+pgvector与MySQL在向量检索方面的优劣。文章指出,PostgreSQL+pgvector凭借原生向量支持、成熟生态、低运维复杂度等优势成为RAG项目的理想选择,而MySQL则因向量功能起步晚、生态薄弱等问题不适合初期项目。作者建议选择PostgreSQL+pgvector这一"一站式"解决方案,既能满足当前需求,又为后续扩展预留空间。

2026-03-13 21:11:36 1634

原创 【JchatMind智能体 | 第一天】从最原始的大模型调用开始

本文通过三个递进实验探讨了大模型交互的基本原理:1)单轮对话展示API请求/响应结构;2)多轮对话揭示上下文由系统维护而非模型记忆;3)工具调用演示模型决策与系统执行的协作机制。文章强调role字段的关键作用,指出多轮对话、工具调用和Agent循环本质都是围绕messages管理展开。通过最原始API调用,作者阐明Agent系统的底层逻辑:模型负责决策,系统负责执行和状态维护。这些基础认知为理解更复杂的Agent框架奠定了基础,揭示了AI交互系统"模型决策+系统执行"的核心协作模式。

2026-03-10 11:44:54 3953

原创 【AI Agent基础 | 第四篇】Spring AI 集成与多模型支持

本文介绍了如何通过SpringAI实现多模型统一管理,将大模型能力转化为可配置的基础设施。通过引入SpringAI框架,开发者可以摆脱处理不同模型API差异的重复工作,专注于Agent逻辑设计。具体实现分为三步:1)使用BOM管理依赖版本;2)添加模型starter依赖;3)配置APIKey和参数。系统采用注册表模式动态调度多个ChatClient,使Agent只需声明所需模型即可自动获取对应能力,实现模型与Agent行为的解耦。这种架构使模型成为可动态切换的系统基础设施,支持灵活扩展不同厂商的大模型服务。

2026-03-10 11:12:15 3814

原创 【AI Agent基础 | 第三篇】AI到底是怎么做事的?

AI Agent的核心价值在于任务推进能力,但大模型无法直接操作真实系统。关键在于明确分工:模型负责决策判断,系统负责执行落地。工具调用(Tool Calling)成为关键桥梁,通过预定义函数让AI间接影响系统。随着工具复杂度提升,MCP模式将工具抽象为可管理的能力,实现跨团队复用。当前已解决AI"能不能做"的问题,但"如何选对工具"仍需结合向量模型和RAG技术,这是实现智能Agent完整能力的关键闭环。(149字)

2026-03-07 14:47:11 3639

原创 【LeetCode | 第三篇】算法笔记

介绍了三种常见链表问题的解决方案。随机链表复制使用哈希表存储节点映射关系,通过两次遍历完成复制。排序链表提供两种方法:转换为数组排序重建,或采用归并排序递归处理。合并K个升序链表可采用逐一合并或分治法优化效率。LRU缓存则结合双向链表和哈希表,实现O(1)时间复杂度的存取操作,通过维护访问顺序和容量控制来管理缓存。每种方案均包含详细的实现思路和代码示例。

2026-03-05 10:20:29 1570

原创 【AI Agent基础 | 第二篇】从被动问答到主动推进任务的智能体

本文探讨了AI智能体(Agent)的概念及其在多步骤任务处理中的优势。文章首先区分了两种任务类型:一次性任务(无状态)和多步骤任务(有状态),指出传统AI模型仅适合处理前者。针对需要逐步推进的复杂任务,作者阐释了Agent的核心特征:具备目标意识、状态意识和行动意识,能够自主决策和动态调整流程。与固定流程的Workflow不同,Agent通过"思考-执行-反馈"的循环机制主动推进任务。文章还介绍了多智能体协作系统和Agentic设计理念,强调Agent需要结合真实世界工具才能有效完成任务

2026-03-05 10:09:11 3782

原创 【JUC并发 | 第五篇】JMM内存模型 和 volatile关键字

JMM(Java内存模型)是解决多线程并发问题的抽象规范,通过主内存和工作内存机制保证可见性、有序性和原子性。volatile关键字确保变量修改立即刷新到主内存,防止指令重排序但不保证原子性;synchronized通过监视器锁实现原子操作和内存屏障。典型应用如双重检查锁单例模式中,volatile防止对象初始化指令重排序。JMM提供多种原子性保障方式,包括synchronized、Lock和原子类。指令重排序虽能提升性能,但需通过内存屏障规避多线程风险。

2026-02-28 12:34:47 3939

原创 【AI Agent基础 | 第一篇】AI模型的能力边界与分类

AI模型能力边界与分类学习心得 本文分享了关于AI模型分类及能力边界的学习体会。文章指出,AI产品看似全能的表现实际是多种模型协同工作的结果,而非单一模型的能力。重点分析了三类主流AI模型:大语言模型(LLM)擅长文本理解与生成,多模态模型突破文本局限处理多种内容形式,向量模型则专注于语义关联分析。这三类模型各司其职,共同支撑起AI产品的多样化功能。最后提出模型协同与任务决策需要更高层级的Agent来实现,为后续学习埋下伏笔。文章以通俗易懂的方式帮助初学者建立对AI模型的正确认知框架。

2026-02-28 12:28:39 2707

原创 【LeetCode | 常用函数】Set类 HashMap类 String类

本文介绍了Java中Set、HashMap和String三大类的常用方法及其应用场景。Set部分对比了HashSet(无序去重)和TreeSet(有序去重)的核心方法;HashMap重点讲解了键值对操作和遍历方式;String详细列举了字符处理、查找匹配、截取分割等高频方法。每种方法都配有功能描述和典型应用场景说明,并附有完整示例代码。内容适用于算法解题和日常开发,帮助开发者快速掌握这些核心类的实用技巧。文章还提供了飞书文档链接供读者参考。

2026-02-27 17:29:55 2638

原创 【LeetCode | 第二篇】算法笔记

本文总结了LeetCode中常见的链表操作算法,包括: 合并两个有序链表的递归和迭代两种方法 两数相加的链表实现 删除链表倒数第N个节点的两次遍历和双指针解法 两两交换链表节点的迭代和递归实现 K个一组翻转链表的完整解决方案 每种算法都提供了清晰的思路描述和Java代码实现,特别强调了边界条件的处理和指针操作的注意事项。这些算法涵盖了链表操作的基本模式,对掌握链表数据结构具有重要参考价值。

2026-02-27 17:22:35 1801

原创 【JUC并发 | 第四篇】多线程 和 死锁

本文系统讲解了Java多线程编程的核心概念与应用。首先区分并发与并行的区别,分析多线程在单核/多核CPU上的价值。然后详细阐述线程调度方式、线程安全问题和死锁机制,包括死锁的四个必要条件、检测方法(jstack工具)及预防策略(破坏循环等待等)。最后介绍了synchronized、ReentrantLock等线程同步工具。文章兼顾理论与实践,为Java开发者提供了全面的多线程编程指导。

2026-02-26 11:59:24 2694

原创 【LeetCode | 常用函数】Collections工具类 和 List类

本文介绍了Java中Collection接口与Collections工具类的核心区别:Collection是集合框架的顶层接口,兼容有序和无序集合;Collections则是专门针对有序集合(List)的操作工具类。重点讲解了Collections工具类的高频方法,包括排序(sort/reverse)、查找(binarySearch/max/min)、填充替换(fill/replaceAll)和集合操作(newSetFromMap/emptyList)等,并提供了代码示例。同时详细说明了List接口的常用方

2026-02-26 11:45:01 2563

原创 【JUC并发 | 第三篇】简析ThreadLocal

ThreadLocal是Java中实现线程本地存储的机制,每个线程拥有独立的变量副本,避免多线程竞争。其核心原理是每个Thread类内部维护ThreadLocalMap(本质是Entry数组),ThreadLocal对象作为Key,变量副本作为Value。存在内存泄漏风险:Key是弱引用会被GC回收,但Value是强引用会持续占用内存,必须调用remove()清理。InheritableThreadLocal支持父子线程间传递数据,但不适用于线程池场景,此时需使用TransmittableThreadLoc

2026-02-10 21:32:42 2627

原创 【LeetCode | 第一篇】算法笔记

本文总结了链表常见问题的解题思路:1. 链表相交问题通过计算长度差并同步遍历寻找公共节点;2. 反转链表采用三指针法逐个反转节点;3. 回文链表使用快慢指针找中点并反转后半部分比较;4. 环形链表检测使用哈希表或快慢指针法;5. 找环入口则需在确认有环后重置指针寻找相遇点。每种方法都提供了详细步骤说明和代码实现,并强调了关键点和常见错误。这些算法均满足O(1)空间复杂度要求,适合面试准备和算法学习。

2026-02-09 13:53:55 1842

原创 【LeetCode | 常用函数】Arrays工具类 和 Collection接口

本文介绍了Java中Arrays工具类和Collection接口的核心用法。Arrays工具类提供数组排序(sort)、二分查找(binarySearch)、复制(copyOf)、填充(fill)等静态方法,适用于算法题中的数组操作。Collection作为List/Set的父接口,定义了add/remove/contains等通用集合操作方法,并详细演示了集合遍历、交集(retainAll)等场景。文章通过代码示例展示了数组与集合的相互转换技巧,并强调使用iterator安全删除元素的重要性。这些工

2026-02-07 12:05:20 1590

原创 【JUC并发 | 第二篇】ReentrantLock可重入锁

ReentrantLock是Java并发包中的可重入独占锁,相比synchronized更灵活强大,支持可中断、超时、公平/非公平锁等特性。两者主要区别在于:实现层面(JVM内置指令vsJava API)、锁释放方式(自动vs手动)、灵活度(ReentrantLock支持中断/超时/公平锁/多条件变量)、性能(高并发时ReentrantLock更优)。不可中断锁(如synchronized)会一直阻塞,而可中断锁(如lockInterruptibly())可响应中断请求。Java中断是协作式通知机制,

2026-02-06 11:56:44 1863

原创 【JUC并发 | 第一篇】深入理解synchronized关键字

synchronized是Java中的内置锁关键字,用于解决多线程资源竞争问题,保证线程互斥和内存可见性。它可修饰实例方法(锁当前对象)、静态方法(锁类对象)和代码块(锁指定对象),三者互不冲突。JDK1.6后引入锁升级机制(无锁→偏向锁→轻量级锁→重量级锁),通过MarkWord实现优化:偏向锁优化单线程重入,轻量级锁通过CAS自旋应对低竞争,重量级锁则依赖ObjectMonitor处理高竞争场景。synchronized具有可重入性,底层通过monitorenter/monitorexit指令或

2026-02-04 15:54:04 1861

原创 【Java集合 | 第四篇】ConcurrentHashMap详解

ConcurrentHashMap与Hashtable线程安全实现对比:Hashtable采用全表锁机制,所有方法使用synchronized修饰,导致高并发下性能低下。JDK1.7的ConcurrentHashMap采用分段锁(Segment)设计,将数据分为16个段,每段独立加锁,提高并发度。JDK1.8则优化为Node数组+链表/红黑树结构,通过CAS+synchronized实现细粒度锁控制,仅锁定当前操作的桶节点。两者主要区别在于锁粒度:Hashtable锁整个表,ConcurrentHashMa

2026-02-03 15:29:05 1842

原创 【Java集合 | 第三篇】HashMap详解

HashMap与Hashtable在线程安全、效率、null值支持等方面存在显著差异:HashMap非线程安全但效率更高,支持null键值;Hashtable线程安全但基本被淘汰。JDK8的HashMap采用数组+链表+红黑树结构,当链表长度≥8且数组容量≥64时转为红黑树优化性能。HashMap长度设为2的幂次方以提高取模效率、减少哈希冲突。多线程环境下HashMap存在数据覆盖和死循环风险(JDK7及之前)。常见遍历方式包括keySet遍历、entrySet迭代器遍历、Lambda表达式等,

2026-01-29 20:13:27 2870

原创 【Java集合 | 第二篇】List集合总结

ArrayList基于动态数组实现,支持随机访问,插入删除效率受位置影响(尾部O(1),其他O(n));LinkedList基于双向链表,头尾操作O(1),随机访问O(n)。ArrayList扩容机制为1.5倍增长,需考虑最小容量需求。两者均非线程安全,区别在于:ArrayList空间利用率高但扩容耗性能,LinkedList每个元素占用更多空间但插入删除灵活。集合的fail-fast机制通过modCount检测并发修改,fail-safe则通过写时复制保

2026-01-28 18:21:46 2821

原创 【Java集合 | 第一篇】集合概述

Java集合框架提供了多种数据结构实现,包括List(ArrayList、LinkedList)、Set(HashSet、LinkedHashSet、TreeSet)和Map(HashMap、LinkedHashMap、TreeMap)等。集合与数组的主要区别在于动态扩容和元素类型限制。线程安全集合包括Vector、Hashtable及并发包下的ConcurrentHashMap、CopyOnWriteArrayList等。集合遍历支持for循环、迭代器、Stream流等方式。不同集合类型在性能、线程安全和

2026-01-23 23:09:42 976

原创 【Java基础 | 第八篇】BIO NIO AIO

BIO(同步阻塞IO)采用线程-连接一对一模式,线程阻塞等待数据,适用于简单场景但资源消耗高;NIO(同步非阻塞IO)通过Selector多路复用实现单线程处理多个连接,采用非阻塞轮询机制,核心组件包括Buffer、Channel和Selector;AIO(异步非阻塞IO)由操作系统完成IO操作后回调通知,实现真正的非阻塞。NIO基于事件驱动模型(如Netty框架采用Reactor模式),而AIO采用Proactor模式。JDK版本要求依次为1.0+、1.4+和1.7+,分别适用于简单连接、高并发短连

2026-01-22 23:12:07 898

原创 【Java基础 | 第七篇】Java8新特性 和 序列化

这篇文档围绕Java8 新特性和序列化两大核心知识点展开,整理了关键用法与应用场景,其摘要如下:Java8 新特性Lambda 表达式:简化匿名内部类代码,核心格式为()->{},可用于线程创建、集合排序等场景。Stream 流:以声明式处理集合数据,包含中间操作(filter、map 等)和终止操作(collect、sum 等),支持并行流(ParallelStream)基于分而治之思想提升大数据量处理效率,可实现筛选、统计、分组等常见业务需求。函数式接口:可通过@FunctionalInterf

2026-01-21 20:48:37 1973 1

空空如也

空空如也

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

TA关注的人

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