news 2026/9/26 7:52:55

大模型应用开发核心技术解析:RAG、Agent与模型微调实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型应用开发核心技术解析:RAG、Agent与模型微调实战指南

1. 课程内容设计思路:为什么把RAG、Agent和微调放在一起

前几天在群里看到有人问,北大青鸟这个AI大模型课程到底讲的什么核心技术,值不值得花时间去啃。我自己带过几期大模型方向的转行学员,平时也用这套思路带新人做项目,说实话,这个课程的题眼非常明确:RAG、Agent、模型微调。这三项基本把企业里大模型应用开发的“骨架”都覆盖了——怎么让模型看你的文档,怎么让模型帮你干活,怎么让模型说你这个行业的话。把话说直白点,现在的企业要的不是一个会用ChatGPT聊天的人,而是能把大模型真正接进业务系统的人。

先说这课程适合谁。如果你是刚从传统开发转来,或者在校学生想找AI应用方向的实习,再或者已经在做后端、数据相关的岗位但想往AI靠一靠,这门课讲的东西都是能落地的刚需。它不太纠结于一两个API怎么调,而是教你围绕大模型搭一套完整的应用链路。我看了很多同类课程的毛病:要么只教Prompt,要么直接上模型训练原理,两者都走极端。而这课把RAG、Agent、微调放在一起,刚好构成了一条从“理解”到“做事”再到“个性化”的能力线。

1.1 三种能力正好对应企业落地的三道坎

先拆开说。RAG解决的是“模型不知道企业内部知识”的问题。大模型训练完就定格了,不会自动知道你们公司的最新制度、产品文档、内部FAQ。RAG的思路是先把这些文档切碎存起来,用户提问时先去文档库里检索相关片段,再连同问题一起交给大模型回答。这就是企业知识库问答、智能客服、合同助手这类产品的底层逻辑。

Agent解决的是“模型只会说话不会办事”的问题。光能问答不够,业务上要的是让它能查数据、发消息、调接口、操作工具。Agent框架做的事情就是让大模型自己拆解任务、规划步骤、调用外部工具、根据工具结果继续执行,直到完成目标。所谓“AI智能体”,本质就是一个会思考、会动手的自动化系统。

模型微调解决的是“通用模型说话不够专业”的问题。通用大模型什么都会一点,但医疗、法律、金融这些专业领域的术语和表达方式,光靠提示词是掰不过来的。微调就是在私有数据上对模型做二次训练,让它的输出风格、知识范围、专业深度都向目标行业收缩。

这三道坎其实是逐层递进的:先让模型有“记忆力”(RAG),再让模型有“行动力”(Agent),最后让模型有“专业力”(微调)。课程把三者串起来而不是单独讲,是因为真实项目里它们经常配合出现,拆开教会让学生毕业后很难拼装。

1.2 课程怎么组织:原理、环境、小项目三步走

我看过这个课程的材料和不少学员反馈,整体设计是典型的“三步走”套路,每一步都有它的道理。

第一步是讲原理。每个模块都会先讲清楚“这技术在解决什么问题”,而不是上来就丢工具。比如RAG会先讲向量、嵌入、相似度检索;Agent会先讲ReAct模式、任务规划、函数调用;微调会先讲loss、梯度、过拟合、LoRA原理。这部分看起来偏理论,但实际上非常关键——因为工具更新太快,今天用LangChain明天可能换LlamaIndex,只有原理能迁移。

第二步是配环境。北大青鸟这类课程的逻辑很务实,它不会让你从零写一套大模型框架,而是直接带你在已经跑通的环境里改业务逻辑。课程里大量使用Ollama、LLaMAFactory、Qwen2.5-7B这类开源工具和模型,目的就是降低门槛。很多自学的人卡就卡在环境配置这一关:显卡驱动、CUDA版本、Python包冲突、模型下载慢,随便一个就能磨掉一个周末。课程里把这些路径走熟了,确实能帮学员少踩很多坑。

第三步是做小项目。每个模块都配了一个能独立跑起来的项目,最后还有一个综合实训把它们组合起来。比如先做一个简单的PDF问答机器人(RAG),再给它加一个能联网搜索、能调用计算器的Agent外壳,最后根据自己的行业场景微调一个专属版本。这个路径跟我平时带的项目流程几乎一致,先跑通再优化是很正确的教学节奏。

1.3 学完能做什么:岗位匹配和能力边界

说实话,并不是学完这门课就能成为算法工程师。课程的真实定位更偏向“大模型应用工程师”或“AI应用开发工程师”,这个岗位的核心职责是:把现成的开源大模型接入业务系统,用RAG让模型理解业务数据,用Agent让模型能执行任务,必要时通过微调优化模型表现。

对应到具体的岗位能力,大概是这几类:一是能独立搭起一个本地知识库问答系统,这是RAG方向最典型的作品;二是能基于Agent框架做一个能调用外部工具的对话系统,比如查天气、查库存、操作内部系统;三是能使用微调框架训练一个垂直领域模型,并且知道如何准备数据、评估效果。

这里我得给个忠告:不要指望学完就能从零训练一个大模型。课程的微调部分教的都是在开源底座(比如Qwen2.5-7B)上做参数高效微调,只改模型的行事风格和专业语感,而不是重新发明模型。知道这个边界,出去面试时反而更从容,因为企业大多数岗位要的就是这个。

2. RAG实战拆解:从文档切分到知识库问答

RAG是这三个技术里最容易上手、也最适合作为第一个项目的方向。它的工程链路很清晰:加载文档、切分文本、向量化存储、检索相关片段、注入Prompt让模型回答。我把这套流程拆开讲,同时补充一些课程里经常强调、但自学时容易忽略的细节。

2.1 RAG的五步链路与每一步的选型理由

第一步是文档加载。你要先把手里的PDF、Word、Markdown、网页内容读进来。这一步看起来简单,但坑很多。PDF有扫描版、有文字版,扫描版要先过OCR;Word里带表格和图片,切分时容易把语义切碎。课程里通常建议优先用Markdown或纯文本格式做演示,等你熟悉链路后再考虑复杂格式。

第二步是文本切分。大模型有上下文窗口限制,你不能把整本《民法典》直接塞进去,所以要按段落、按语义切块。切分策略直接决定检索质量。切得太小,语义不完整,检索到的片段答非所问;切得太大,检索精度下降,还容易把无关内容混进来。课程里一般会用固定大小加重叠窗口的方式,比如每块500到800个字符,重叠100到150个字符,保证切点不会硬生生切断一句话。

第三步是向量化。把文本块变成向量,本质上就是用一个嵌入模型把每一段文字映射成一串浮点数。比如中文场景下,可以选BGE-M3、M3E这类开源嵌入模型,它们对中文的支持比很多国际模型更好。向量化的核心要求是:语义相近的文本,向量距离也近。这一步质量不高,后面全白搭。

第四步是向量检索。把用户问题也向量化,然后在向量库里做相似度搜索,找出最相关的几个文本块。常见向量库有Milvus、Qdrant、Chroma、FAISS。教学环境推荐Chroma或FAISS,装起来快、内存友好;生产环境一般用Milvus或Qdrant,支持高并发和水平扩展。课程里两个都会带一下,重点在让你理解“向量距离”这个核心概念。

第五步是生成回答。把检索到的文本块作为上下文,连同用户问题一起组装成一个Prompt,交给大模型。这里有个关键技巧:Prompt里要明确告诉模型“如果上下文里没有答案,就直说不知道,别编”。这能显著缓解幻觉问题,也是RAG系统上线前必须做的兜底设计。

2.2 检索质量优化的两个关键点:重排与多路召回

很多人做完基础版RAG后都会发现一个问题:向量检索有时候会把不够相关的文档也排到前面,导致大模型回答被误导。课程里会重点讲两个优化手段,也是实际项目里提效果最明显的:重排(Rerank)和多路召回。

重排的思路是先向量检索召回20个候选片段(保证召回率),再用一个更精细的重排序模型,对20个候选重新打分,最后只取前3到5个给大模型。这种“先粗后精”的两阶段检索是业内的标准做法。重排模型可以选BGE-Reranker,它在中文场景下效果不错,而且接入LangChain或LlamaIndex都非常简单。

多路召回的意思是不要只用向量检索一种方式,可以同时做关键词检索(比如BM25),再把两种结果合并去重。为什么需要它?因为向量检索擅长找语义相近的,但在精确匹配场景——比如查一个产品型号、一串订单编号——反而容易翻车。关键词检索擅长精确匹配但不懂语义。两者互补,合并后能明显提升召回质量。课程里如果进度够,通常会把这两个优化让学员在项目里各做一遍,体验“从及格到优秀”的差异。

2.3 RAG项目实操中的三个高频问题

第一个高频问题是切分参数拍脑袋定。我见过不少学员不看自己文档的类型,直接套网上的参数,结果长文档检索稀碎。实践建议是:先用小样本文档做几组切分实验,对比不同的块大小和重叠大小对检索命中率的影响。哪怕只是用五六个测试问题人工看一眼命中结果,也比你盲调强得多。

第二个高频问题是向量化模型选错。有人贪图省事用最便宜的嵌入模型,结果中文语义理解差,检索出来一堆乱七八糟的内容。课程里的建议很实在:常规中文知识库选BGE-M3或M3E这种开源模型就够用,不需要非用OpenAI的嵌入接口,效果不见得好还费钱。

第三个高频问题是把“能跑通”当成“效果好”。RAG做完后,必须构建一套评估问题集,至少准备20到50个代表性问题,逐个检查检索命中率和最终回答正确率。这一步才是工程化的开始。很多学员就是缺了这个习惯,面试被问“你怎么评估RAG效果”时答不出来。

3. Agent开发解析:从对话机器人到能干活的智能体

Agent这一块是课程里最“出彩”的部分,因为演示效果太直观了:你让AI帮你查资料、计算数据、规划行程,它真的会一步步做给你看。但要理解Agent,不能只停留在“好炫酷”的层面,得搞清楚它背后到底是怎么运作的。

3.1 Agent的核心结构:模型、记忆、规划、工具四件套

一个完整的Agent框架,至少要包含四个部分。大模型本身是决策大脑,负责理解任务、生成计划和输出下一步动作;记忆模块负责记录历史对话和中间结果;规划模块负责把复杂任务拆成小的子步骤;工具调用模块负责真正执行动作,比如调用搜索引擎、访问API、执行代码。

用生活化类比来说,Agent就像你请了一个实习生干活。你交代一个任务,他不会一次做完,而是先看一下要分几步,先查资料,再写初稿,再整理格式,每一步做完把结果反馈给你。这里的“实习生”是大模型,“工作手册”是规划模块,“手边的工具”是工具调用模块。

课程里讲Agent框架,一般会把主流框架都过一遍:LangChain的历史最久、资料最多;AutoGen适合多Agent协作;Agentscope是国内团队搞的,对中文开发者友好,而且它2.0版本已经把“RAG as a Service”做成内置能力了,把RAG和Agent的整合难度降了不少。我的建议是选一个主框架深入学习,其他了解即可——框架都是皮,核心机制才是里子。

3.2 从ReAct到Function Calling:Agent为什么“能干活”

Agent的产生,核心依赖两个机制:ReAct模式和Function Calling(函数调用)。ReAct是论文里的一个概念,核心思想是让大模型在推理过程中交替进行Reasoning(思考)和Acting(行动),也就是“思考一下为什么要做这个、然后执行一个动作、看到结果、再思考下一步”。Agentic RAG就是这种思考循环加了RAG检索工具,让模型不止回答一次,还能根据问题反复检索。

Function Calling更进一步——它是模型经过特殊训练后的一种能力:模型在生成回答时能输出一个结构化的“调用某个函数的指令”,比如输出调用天气API的参数。程序拿到这个指令,去执行真实函数,把结果回传给模型,模型再基于结果生成最终回答。课程里通常会拿一个“带计算器的Agent”做演示:问它“小明有3个苹果,又买了2个,再吃掉1个,还剩几个?”,让Agent自己去调计算器工具,而不是直接让大模型瞎算。

这里有个细节很多初学者会混淆:Function Calling不是你写几行代码让它实现就能实现的,它需要模型本身支持这个能力。好在现在的主流开源模型,比如Qwen系列,都原生支持Function Calling,这也是课程里选择Qwen2.5-7B做主力教学模型的原因之一。

3.3 Agent项目设计的常见误区:别把流程写死

课程里做Agent项目,最大的教学难点是:学员容易把Agent做成“一长串if else定死的流程”。比如定义好第一步干什么、第二步干什么,然后让大模型在每个环节的输出里挑一个按钮执行。这其实是工作流自动化,不叫Agent。真正的Agent应该是:你只告诉它目标和可用工具,它自己决定什么情况用哪个工具、按什么顺序执行。

为什么这个差别重要?因为企业的业务场景变化非常快。写死流程的话,业务一调整,你整个流程都要重写;而基于大模型自主规划的Agent,只需要调整提示词和工具列表,就能适应新场景。当然,完全放开的Agent也会有失控风险。课程里教的折中方案是“半自由”模式:把关键步骤设成校验点,模型规划后必须经过人类确认再执行,这样既保留灵活性又可控。

我在自己带的项目里遇到过这样一个问题:Agent在反复循环里出不来,一直调用工具却给不出最终答案,最后把成本跑高。解决方法是给Agent设定“最大步数”,比如执行10步还没完成就强制停止,并返回当前进度让人工判断。这个限制看着简单,但能救命的。

4. 模型微调实操:让大模型说“行业话”

微调这三块里最重的一环,很多人一听要训练模型就发怵。但现在的技术栈已经把这事的门槛降得非常低了。以课程里主用的Qwen2.5-7B配LLaMAFactory为例,哪怕你只有一张消费级显卡也能跑起来。

4.1 微调为什么选LoRA而不是全参训练

微调的核心概念其实不复杂:把一个大模型拿出来,用你的业务数据在它基础上再训练几步,让它不改变通用能力的同时,更适应你的专业领域。但这里有一个现实问题:一个大模型可能有70亿甚至几百亿参数,全参数训练不仅需要巨大的算力和数据量,还特别容易灾难性遗忘——也就是学会新知识的同时把原有知识忘光了。

所以现在做行业模型微调,几乎默认用LoRA。LoRA的原理是在原有权重旁边加一条低秩的旁路,训练时只更新这条旁路上极少量的参数,原模型的权重基本不动。这么做的好处很直接:训练显存低、速度快、容易恢复。课程里用的是QLoRA,也就是给LoRA再叠加量化,进一步把显存需求压低。Qwen2.5-7B这种级别的模型,用QLoRA在24GB显存的显卡上就能训。

微调数据量的问题也顺带解决了。全参训练可能需要百万级的数据,而LoRA微调,只要有几千到几万条高质量问答对,就能看到明显变化。我们教学里甚至有一个经典实验:只喂模型几百条特定风格的客服对话,它就能把回答语气扭过来。效果不是说变得多聪明,而是变得更“像这个行业里的人”。

4.2 数据集制作全流程:如何从零生成符合要求的数据集

微调最重要的不是代码,是数据。很多学员练手时找不到现成数据集,课程里会教一个非常实用的办法:利用Python脚本加本地大模型,把自身的业务文档改造成微调用的JSON数据集。我这里把完整流程写出来。

先在本地把Ollama跑起来,选一个你业务领域响应还不错的通用模型,比如Qwen系列或者Llama系列的中文版本,用作数据生成的“师傅”。再把你的业务文档按段落整理成若干条原始文本,比如培训手册、产品说明、客服话术,每段就是一个素材。

然后写一个Python脚本,思路很直接:把每段素材套进一个固定的生成模板,让本地模型根据这段素材和模板自动生成“客户问题+客服回答”。例如素材是一家餐厅的退菜规则,模板就让模型生成“顾客问:菜里有头发怎么办?客服答:请您不用担心,我们立刻为您重做并赠送甜品”。跑完脚本后,再把生成结果统一整理成微调模型要求的JSON格式,每条数据包含“instruction”(指令)、“input”(输入)、“output”(输出)三个字段。到了下一步,这些数据直接丢给LLaMAFactory就能训练。

这个流程做完,你会发现一个隐藏好处:你的数据不是从网上下载的大路货,而是完全贴合自己业务语料的定制数据,微调出来的模型自然更贴近真实场景。过程中要注意清洗数据,生成内容如果有明显错误、答非所问、或者包含敏感信息,必须手动删掉。数据里混进垃圾,模型就被垃圾带偏。

4.3 基于LLaMAFactory的微调全过程与参数要点

LLaMAFactory是目前国内微调场景使用率很高的开源集成工具,它的一大优势是界面化操作。用Python的WebUI启动后,模型配置、数据集配置、训练参数全在网页上点选,不用手写训练脚本,对初学者非常友好,对资深开发者来说也不碍事,因为它照样暴露了底层参数。

课程里跑通微调的标准流程是:选择基座模型Qwen2.5-7B-Chat,选择量化方式,比如4bit QLoRA。选择刚才做好的JSON数据集,设置LoRA秩为64,学习率设为2e-4,训练轮数设为3轮,批大小根据显存调整,序列长度设为1024或2048。点击开始,看着损失值往下跌,最后跑完。

训练时有两个参数我每次都要强调:学习率和过拟合。学习率太大,模型很快就学飞了,输出变成乱码;学习率太小,训完等于没训。如果你看到训练损失在下降但验证集上回答质量变差,多半是过拟合了,把训练轮数从3减小到1或2,或者加大数据量再试试。

训练完的产物不是直接能用的模型文件,而是LoRA权重,需要做模型合并,把微调权重合并回原模型,再导出成完整模型。一定要注意,导出格式取决于你要部署到哪里:如果本地用Ollama跑,就导出GGUF格式然后再做量化;如果走Python推理脚本,就用Hugging Face格式。这一步课程里会演示一遍,很多人第一次都会漏掉“合并且导出部署格式”,导致训完的模型不知道怎么拿出去用。

5. 环境配置、部署与常见问题排查

最后把环境配置和部署这块单独拿出来说,因为是自学人群最容易卡死的地方。这部分我会结合课程里踩过的经典坑,整理成能直接照抄的应对方案。

5.1 显存不够怎么办:消费级显卡与云GPU的取舍

微调Qwen2.5-7B这类模型,一个很现实的问题就是显存。用QLoRA 4bit量化后,24GB显存基本是舒适区,12GB到16GB也能跑但很勉强,8GB基本没戏。课程里一般会要求学员预先装好环境,但不强制每个人都有高配显卡。

这里要提一个大家常问的:像RX6750GRE这类消费级显卡,能拿来训练大模型吗?答案是能跑一些轻量推理,但训练和完整微调体验很差。原因是很多AI训练框架对NVIDIA的CUDA生态优化最好,AMD显卡虽然可以通过ROCm或DirectML蹭上AI,但折腾成本和踩坑概率都高得多。如果你真的预算有限又必须本地跑,建议优先考虑二手的NVIDIA显卡,比如RTX 3090,性价比极高。

如果你连显卡都没有,或者只是短期学完课程、不想硬件吃灰,说实话云GPU租机是目前最划算的方案。国内很多云平台提供按小时计费的GPU实例,用的时候开、不用的时候关机,一次实验下来几十块。我多年踩坑的结论是:学习阶段别太纠结本地硬件,先用云GPU把流程跑通,后面有需求再买卡。本地环境折腾太久反而打击学习积极性。

5.2 模型部署的两个常用路径:Ollama直跑与GGUF端侧集成

微调好的模型要部署服务,现在最省心的方式是扔给Ollama——它帮你把模型量化、服务启动、API接口全都包了。你只要把合并导出后的GGUF文件拷到Ollama的模型目录,写一个简单的模型文件,然后一条命令启动,就能得到一个和标准OpenAI接口兼容的本地API服务,其他程序直接调用即可。

这里顺便说下GGUF是什么。它是llama.cpp生态推出的一种专为CPU和低资源环境优化的模型格式,优点是能把模型量化得很小、推理效率高,甚至能塞进手机App里跑。课程里讲到在Android或者桌面端集成本地大模型时,用的就是GGUF方案。实际做法是把模型文件压缩打包进应用,应用启动后用本地推理库加载,这样即使用户断网也能使用基础问答能力。这种情况适合隐私敏感或者离线场景,但别指望小模型跑出大模型的智力水平,做工具类辅助功能是够用的。

部署服务时我有一个实操建议:无论用哪种路径,第一件事都先做接口连通性测试和一次真实问答。很多学员部署完就以为大功告成,结果模型文件路径错了、端口没开、请求格式不对,连curl测试都过不去。先把最简单的测试跑通,再去接业务。

5.3 微调训练的常见故障与排查方案

最后整理一份微调和RAG项目里最高频的故障排查清单,都是我在实际带学员时反复遇到过的:

故障一:训练刚启动就报CUDA out of memory。原因是显存不足。排查方法:把批大小降到1,把序列长度缩短,开启梯度累积,必要时换更小的基座模型或者再用低一点的量化位宽。别死磕大参数,先让训练能跑起来,质量后面再调。

故障二:训练loss一开始就是NaN。绝大多数情况是学习率过大,或者数据集里有包含非数值的异常字符。先降低学习率,再检查数据清洗。如果数据集是从网页爬下来的,大概率混进了特殊空白字符或控制字符,一定要先做一遍文本清洗。

故障三:微调后模型回答变成了乱码或语气怪异。我遇到过不少人把LoRA秩设成128或256,数据量却只有几百条,极大程度过拟合。解决办法:降低LoRA秩,比如回到64或32;增加数据量;把训练轮数减小。记住,微调的目的是小幅修正风格,不是把模型重写一遍。

故障四:RAG检索不到相关内容,答非所问。先从切分参数排查:文档过长的话,把块大小调小一点、重叠调大一点。再检查嵌入模型和检索方法是否匹配,比如用中文文档配英文嵌入模型,这是很常见的翻车原因。最后检查有没有做重排,两阶段检索通常比单阶段好一大截。

故障五:Agent运行到一半就报错退出。常见原因是工具返回的格式不符合模型的预期。排查的办法是加一个异常捕获,把工具返回内容先整理成统一的字符串格式,再交回给模型。另一个常见原因是Agent陷入无限循环,要么配置最大迭代次数,要么给每个工具增加超时时间,让单个工具卡死不会拖垮整个Agent。

这五类问题我可以说每学期都会遇到,遇到一次你自己排一次,解决一次,出来后对整个技术栈的理解会深一层。课程里带练项目本质上就是帮你提前经历这些故障,到了真实工作中再碰到,就不慌。

我个人在实际带项目的体会是,这三块技术单独学都不难,难的是把它们组合在一个完整项目里,还要让系统稳定、可评估、可调优。如果你正在学这门课,或者打算自学大模型应用,建议给自己定一个跨模块的整合任务:这个月做一个带RAG和Agent的行业问答智能体,下个月再对它做一轮微调,三个技术点全部用上,做完你才算真的掌握了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 7:52:52

API频繁断连?从抓包到证据链,两步证明问题不在你这边

1. 现象描述与初步猜测1.1 从“两天排查”说起这个标题写出来我自己都想笑。上上周四,我们的订单回调任务又开始在凌晨三点报警,日志里一堆Connection reset by peer和Read timed out。我本来以为是新上线的Java接口又没处理好连接池,结果整整…

作者头像 李华
网站建设 2026/9/26 7:52:12

Java数据结构实战压缩包:可编译、可调试、可验证

简介:本资源是一套面向Java初学者与进阶开发者的数据结构与算法系统学习包,聚焦Java语言实现,覆盖数组、链表、栈、队列、哈希表、二叉树、AVL/红黑树、图及排序、搜索、贪心、回溯等核心内容,助力夯实编程基础、应对技术面试或提…

作者头像 李华
网站建设 2026/9/26 7:51:44

Unity与UE5双引擎实战:架构对比与高频踩坑全记录

干这行这么多年,我一直同时维护着几个不同引擎的项目,手上既有从Unity 2018一路升到Unity 6的老项目,也有从UE 5.1跟到UE 5.4的新项目。很多朋友一上来就问"Unity和UE5到底选哪个",我的回答向来是:与其纠结哪…

作者头像 李华
网站建设 2026/9/26 7:51:26

Atlas 300V 24G推理加速卡深度解析:从环境搭建到YOLO部署全流程实战

先说个普遍现象:很多人一看到"Atlas"三个字母,脑子里冒出来的是各种完全不同的东西。有人以为是数据库,有人以为是NLP框架,还有人以为是指南针。但在AI推理部署这个圈子里,Atlas基本特指华为昇腾的AI计算平台…

作者头像 李华
网站建设 2026/9/26 7:51:10

JVM内存模型深度拆解:JMM与运行时数据区,一篇文章彻底厘清

前几天帮一个团队做线上JVM排查,午休时一个小伙子问我:JVM内存模型到底是指堆和栈的划分,还是指多线程那个可见性模型?他说面试题背了不少,可一旦被问到 volatile 和堆扯上关系就彻底分裂了。我当时就意识到&#xff0…

作者头像 李华