暑期实习被问的多的六个ai概念
这几个问题跨度很大从 AI 架构设计到 Java 底层原理都有。别慌我帮你把这些概念拆解成面试中容易得分的“逻辑块”。特别是前三个关于 AI 的问题Function Calling、MCP、Skill 等是目前大模型应用开发中最热门的概念搞清楚它们的层级关系是回答的关键。 24. Function Calling、MCP、Skill概念、场景与解决的问题这三个概念其实代表了 AI 智能体Agent与工具交互的三个不同层级底层协议、通信标准、业务封装。1.Function Calling (函数调用)概念这是大模型的一种底层能力。它让模型不仅能输出文本还能输出结构化的数据如 JSON告诉程序“我要调用哪个函数参数是什么”。解决的问题解决了**“模型说不清楚程序读不懂”**的问题。它打破了模型只能聊天的限制让模型有了“手”能触发外部动作。场景简单的工具调用查天气、计算器、查询数据库。提取结构化信息把用户的一段话转换成 JSON 对象。2.MCP (Model Context Protocol模型上下文协议)概念由 Anthropic 提出的标准化通信协议。你可以把它理解为AI 界的 USB-C 接口。它定义了一套标准让 AI 应用Client能统一地连接到各种数据源和工具Server。解决的问题解决了**“连接碎片化”和“上下文孤岛”**的问题。以前每接一个工具都要写一套适配代码现在只要工具支持 MCP 协议AI 就能直接连不用重复造轮子。场景企业级应用集成统一连接本地文件、Google Drive、Slack、GitHub 等。跨平台工具共享开发者开发一个 MCP Server所有支持 MCP 的 AI 客户端都能用。3.Skill (技能)概念这是面向业务的能力封装。它通常是一个包含指令、脚本、资源和提示词的“文件夹”或集合。Skill 往往基于 Function Calling 构建但更复杂。解决的问题解决了**“工具零散无法完成复杂业务”**的问题。它把一个个原子化的函数如“查航班”、“查酒店”组合成一个有意义的业务能力如“订机酒套餐”。场景复杂任务处理比如“帮我策划一次旅行”Skill 会自动规划步骤依次调用查天气、订机票、订酒店的函数。垂直领域专家比如“法律助手 Skill”里面封装了查法条、写文书的特定流程和提示词。 总结对比表概念本质定位核心解决问题形象比喻Function Calling底层交互协议模型输出结构化指令神经信号告诉手要动MCP通信与调度层统一连接标准避免重复开发USB 接口通用插头Skill业务能力层复杂任务编排与封装操作手册怎么做菜 25. Prompt Engineering、Context Engineering、Harness Engineering这三个概念代表了 AI 应用开发从“手工作坊”到“系统工程”的进化过程。1.Prompt Engineering (提示词工程)解释这是最早期的阶段。核心是**“写咒语”**。通过精心设计自然语言指令如“你是一个专家请一步步思考...”引导模型输出更好的结果。局限它是一次性的、静态的。如果任务太复杂光靠一段话很难控制模型。2.Context Engineering (上下文工程)解释这是目前的主流趋势。核心是**“构建信息流水线”**。它不再只关注那一句提示词而是关注如何把最有效的信息知识、历史、工具描述在恰当的时机喂给模型。它包括 RAG检索增强、记忆管理、摘要压缩等技术。解决问题解决了模型“记性差”、“知识过时”和“幻觉”问题。它把模型从一个“聊天机器人”变成了一个“拥有外部知识库的专家”。3. Harness Engineering (编排工程/智能体工程)注Harness 在这里通常指“智具编排”或“系统 harness”类似于 LangChain 或 AutoGen 这类框架所做的工作。解释这是最高阶的阶段。核心是**“系统级管控”**。它不仅仅是给信息而是设计一个工作流。比如先让模型 A 写代码再让模型 B 审查代码如果报错再让模型 A 修改。它涉及多智能体协作、循环反馈、工具调用的逻辑编排。解决问题解决了复杂任务的自动化执行和可靠性问题。 一句话总结进化史Prompt Engineering教模型“怎么说话”。Context Engineering给模型“参考资料和记忆”。Harness Engineering给模型“ teammates队友和工作流程”。☕ 26. 抽象类和接口的区别这是 Java 面试的经典题回答时要从设计层面和底层实现两个角度切入。设计层面的区别核心抽象类 (Abstract Class)是对**“本质”**的抽象。它代表“是什么 (Is-a)”的关系。例子Cat和Dog都是Animal。Animal就是一个抽象类它定义了大家都有“吃”和“睡”的能力。接口 (Interface)是对**“行为”**的抽象。它代表“能做什么 (Can-do)”的关系。例子Cat和Airplane都可以Fly。Fly就是一个接口。猫不是飞机但它们都能飞。技术层面的区别Java 8特性抽象类接口继承/实现单继承 (一个类只能有一个父类)多实现 (一个类可以实现多个接口)成员变量可以有各种类型的变量 (static, final, 普通)只能是public static final常量构造方法有构造方法 (供子类调用)没有构造方法方法实现可以有抽象方法也可以有具体实现的方法Java 8 之前只能有抽象方法Java 8 可以有default和static方法✅ 什么时候用哪个如果你想复用代码比如几个子类有共同的代码逻辑用抽象类。如果你想定义一种规范让不相关的类都能具备某种能力用接口。♻️ 27. JVM 内存回收标记清除 vs 标记整理这两个算法主要用在老年代因为新生代通常是复制算法。1. 标记-清除 (Mark-Sweep)原理标记遍历对象图标记出所有还活着的对象。清除直接回收掉没被标记的对象。适合场景对象存活率较高且不需要频繁分配大对象的场景。CMS 收集器虽然已废弃但经典的并发清理阶段用的就是这个变种。缺点会产生内存碎片。碎片太多会导致无法分配大对象不得不提前触发 Full GC。2. 标记-整理 (Mark-Compact)原理标记同上标记存活对象。整理让所有存活的对象向一端移动然后直接清理掉边界以外的内存。适合场景对象存活率高的场景老年代典型特征。需要分配大对象的场景因为没有碎片。Serial Old和Parallel Old收集器使用的算法。缺点移动对象需要暂停用户线程 (Stop-The-World)且成本较高需要更新引用地址所以比“标记-清除”慢。✅ 总结回答“标记-清除适合对停顿敏感、且内存碎片问题不严重的场景或者作为 CMS 的并发清理阶段而标记-整理适合老年代这种对象存活率高、且为了避免碎片化导致无法分配大对象的场景。G1 收集器在 Region 级别上其实也借鉴了整理的思想。”⏳ 28. 存活时间怎么定义这个问题通常指 JVM 中**对象的年龄Age**是如何定义的以及它如何影响 GC。1. 年龄计数器在 HotSpot 虚拟机中每个对象头Object Header里都有一个Age字段。2. 年龄增长规则初始年龄对象在 Eden 区诞生时年龄为 0。熬过 Minor GC如果对象在 Minor GC 后存活下来并被移动到 Survivor 区它的年龄就1。动态年龄判断在 Survivor 区中如果同年龄的所有对象大小总和超过了 Survivor 空间的一半那么大于等于该年龄的对象就可以直接进入老年代而不需要等到年龄达到 15。3. 进入老年代的阈值默认阈值年龄达到15可以通过-XX:MaxTenuringThreshold参数调整。一旦达到这个年龄下一次 GC 时对象就会被晋升到老年代。✅ 回答要点“存活时间是通过对象头里的年龄计数器定义的。对象每熬过一次 Minor GC 并在 Survivor 区存活年龄就加 1。默认情况下年龄达到 15 就会进入老年代。另外JVM 还有一个动态机制如果 Survivor 区里同年龄的对象总大小超过空间的一半那么该年龄及以上的对象会提前晋升到老年代。”