编程导航阿里话题讨论

阿里

88 参与
分享

快来分享你的内容吧~

点击登录,快来和大家讨论吧~
表情
图片
话题
打卡
综合
交流
文章
问答

实习低代码Agent项目是否有必要包装成Spring AI项目?

## 一、背景与目标说明 ### 学习目标 在实习期间参与的**低代码 Agent 项目**,是否有必要在**简历与面试中升级表述为“基于 Spring AI 的 Java 项目”**,以提升项目的技术深度与面试中的可讨论性? ### 个人情况 本人为 **26 届应届生**,暑期曾在阿里巴巴实习,从事 **Java 开发** 工作,最终未能转正;秋招阶段虽已获得 offer,但整体结果并不理想。目前希望通过**优化项目表述与技术表达方式**,系统性提升简历竞争力与面试表现,使其达到更专业、更成熟的水平。 在阿里实习期间,约有 **一半时间参与 Agent 相关工作**。名义上是“开发”,但实际工作内容更多基于公司内部的**低代码 Agent 平台**(形态上类似阿里云百炼),通过**流程拖拽、参数配置、策略调优**等方式,结合具体业务场景进行落地实践。 具体包括但不限于: - Prompt / RAG 方案的设计与调优 - 针对业务场景对 Agent 流程进行编排与效率优化 - 部分业务 Tool 接口的 Java 开发与接入 整体来看,该 Agent 项目在**工程实现层面的技术纵深相对有限**。在实际面试中,该项目通常会被问及,但面试官的提问多集中在**宏观理解与使用经验**层面,例如 Agent 的基本原理、应用场景等,较少深入到工程细节或底层实现,且往往点到为止。 一方面,这可能与项目本身偏低代码、工程复杂度有限有关;另一方面,也与我当时**未对该项目进行系统性的技术整理**有关,导致可展开的技术讨论空间不大。 --- ## 二、当前的困惑与优化方向 目前计划对该项目进行一次**系统性的复盘与表达优化**。近期也学习了「编程导航」中的 **Spring AI 项目教程**,因此产生了以下两种主要方向的权衡,希望获得一些更成熟的判断与建议。 --- ### 方向一:保持「低代码 Agent 项目」的真实背景 在不改变项目本质的前提下,进一步深挖 **Agent 的设计思路、优化策略与工程认知**,将更多“思考过程”与“技术判断”体现在简历与面试表达中。 #### 优势 - **真实性强,风险可控** 接受项目本身是低代码平台落地的事实,可避免因技术栈包装而产生逻辑漏洞,例如被追问 Spring AI 的必要性、技术选型合理性等问题。 - **与既往面试反馈相符,理论层面仍有补强空间** 从过往面试经验来看,即使未明确强调“低代码”,面试官的关注点也多集中在 Agent 原理、Prompt 设计、RAG 思路等偏宏观层面,较少深问具体框架的实现。此前我对理论层面的整理深度有限,若系统补强,可能已足以应对面试场景。(从其它面经观察,直接深问 Spring AI 框架细节的情况并不常见) - **项目篇幅占比有限,可将 Java 重心放在其他项目** 该 Agent 项目约占实习工作量的一半,在简历中预计占三分之一左右篇幅(3 个项目之一)。可选择弱化其工程深度,将 Java 工程能力的展示重心放在另一个代码密度更高的项目上。 - **存在折中表达方案** 例如在技能栈中标注“了解 / 使用过 Spring AI”,在面试讨论 Agent 时,补充说明“如果从工程角度用 Spring AI 落地,我会如何设计”,而非声称真实项目即基于 Spring AI 实现。 #### 劣势 - **技术追问的上限受限** 在低代码背景下,讨论往往自然停留在“用法 + 业务”层面,较难顺畅引导到更深层的工程实现或架构设计讨论。 - **项目价值存在被弱化的风险** 若包装与表达不足,容易沦为“听起来做过,但聊不深”的项目,浪费一次原本可以发挥作用的实践经历。 --- ### 方向二:将项目包装为「基于 Spring AI 的 Agent 项目」 将原本基于低代码平台实现的 Agent 逻辑,**以 Java + Spring AI 的方式重新梳理与表达**,重点强调工程化落地思路。 #### 优势 - **技术深度与可讨论性显著提升** 面试中可围绕 Agent 架构设计、模块拆分、RAG 流程、Tool 调用机制、上下文管理等进行**代码级别**的展开,更容易形成深入、有层次的技术讨论。 - **有利于匹配 AI / Agent 方向岗位** 目前大厂开始出现标注“Agent 开发”的岗位,虽然不多,但在方向匹配度与技术叙事上更具优势。 #### 劣势 - **真实性风险较高** 若面试官对大厂内部技术栈较为熟悉,可能会质疑: - 是否真实使用 Spring AI / Spring AI Alibaba - JDK 版本、依赖环境是否支持 - 既有成熟低代码平台的情况下,是否有必要自研 如果解释为个人预研,又可能引出权限、资源、环境等进一步问题。若无法自洽,容易被质疑项目真实性,进而影响面试官对整体简历的信任度。 - **学习与准备成本增加** Spring AI 的学习会扩大知识边界,也意味着需要准备更多框架原理、底层机制与相关八股内容,整体复习成本更高。 --- ## 三、核心问题总结 1. **低代码 Agent 项目是否有必要“升级”为 Spring AI 项目?** 如果有,应如何包装,才能在提升专业度的同时不违背事实? 2. **面试中项目应呈现到怎样的“技术深度层级”最为合适?** 如果目标稍高,如何体现自己确实有技术沉淀,又能避免被追问到不必要、难以自圆其说的细节,从而适得其反? 3. **后续是否有必要继续补充学习其他相关教程或项目?**

看到一则大厂部门和业务推荐,学习一波~

最近的一些面试,饿了么,拼多多二面,字节国际化一二面,美团被捞后的一二面,字节懂车帝一面,蚂蚁一面

## 饿了么 1. 研究生课题 2. 介绍项目,技术设计选型 3. 多人协同编辑 具体实现,实现难点,遇到了什么问题,技术选型 4. 工程代码量,周期 5. 常见的排序算法实现逻辑及时空复杂度 6. 常见索引设计,优化方法 7. 什么情况下会出现oom 8. 对并发编程的理解 9. 算法:比较json字符串的相等性 10. 算法:一个数组里面很多正整数,输出数字排列组合拼接最大的排列 11. 在一个平面上给定2n个坐标点,找到一个圆让一半的点在圆里面,一半在外面 12. 分布式事务,具体代码实现 13. 一致性hash ## 拼多多二面 1. 工作强度,实习时间地点 2. 介绍项目,系统设计,压测流量 3. 图片的存储方式,获取方式 4. sql:查询昨天上传图片数量超过平均上传数的用户,视图 5. WebFilter + BloomFilter 分别是什么,bf实现原理,怎么扩容,误判的概率 6. 算法:二叉树根节点到叶子节点权值和为指定值的路径集合 ## 字节国际化 1. 介绍项目,其中难点, 2. udp tcp区别 使用场景 3. 算法:Z型层序遍历 4. 主键跟外键 5. 事务是什么 6. sql注入 7. sql题,(联表查询)左连接 ## 蚂蚁一面 1. oj系统介绍 2. 代码沙箱是怎么做的,docker执行代码的流程 3. 图库介绍 4. 图片分析是指什么,ai的接入 5. 多维检索,图片颜色怎么检索的 6. 协同编辑 难点 7. websocket 8. 系统的难点,分表,数据量级,分表依据 9. 系统周期 10. 有挑战性的问题,权限校验,设置了哪些角色 11. tcp客户端向服务端发送一个helloworld是怎么一个流程 12. 同时有大量的客户端请求建立连接可能会出现什么问题 13. tcp上海客户端向北京的服务端传100m的数据要多久,计算方式 14. spring事务里面开启了一个线程,线程里面又开了一个事务,里面的事务对外面的事务有什么影响 15. 你觉得自己的长项优势在哪方面 ## 字节国际化二面 1. 项目主要的卖点,亮点 2. ai扩图 3. 权限管理 4. 无锁队列是怎么实现 5. 怎么用mysql模拟一个消息队列 6. linux命令 7. 1t的log文件排序,mysql语句及耗时,最慢的100个sql,代码实现 8. 进程跟线程的区别,py跟java的线程的区别,进程跟线程各自的通信方式 9. http的报文长什么样子 10. post,get区别,get的传输上限大小 11. http状态码各自含义 12. 算法:两个数组,a,b,长度相等,改变a的顺序,让ai大于bi的个数尽可能多 ## 美团被捞后一面 1. jvm模型 2. 创建一个对象要用到哪些内存空间 3. 值引用和地址引用,地址引用的使用有什么要注意的地方 4. jdk GC 回收方式,jvm调优 5. 有哪些垃圾回收期,各自的特点及区别 6. 有遇到过GC的问题吗,写一个产生OOM的代码,循环创建对象会产生oom吗 7. java里常用数据结构,hashmap底层实现,对应线程安全的hashmap有哪些,concurrent和hashtable有什么区别,跟hashmap有什么区别 8. synchronized底层实现,他锁的是什么,锁升级是什么 9. 讲一下cas,哪些类用到了cas,为什么要将变量定义为volatile,什么情况下程序不会进行指令重排,什么是happen before,赋值a=1,b=2会发生指令重排吗,对于指令重排还有更多的理解吗。 10. 怎么定义一个自己的异常,遇到异常怎么处理,异常捕获具体实现, 11. 怎么创建一个线程,各种方式有什么区别 12. 线程池,参数,来了一个任务以后的工作流程,有哪些拒绝策略 13. 常用设计模式,策略模式具体例子 14. spring的核心,简单介绍一下,spring怎么创建代理类的, 15. spring怎么解决循环依赖的 16. spring事务怎么使用,注解背后实现的原理 17. acid,怎么实现的,原子性的例子, 18. 不可重复读和幻读是什么意思,分别怎么解决,实践过不可重复读和幻读吗 19. 项目中棘手的问题,怎么解决的,解决效果,花费时间 20. ai相关的学习实践经验 ,部署模型,构建知识库 21. 算法:最高频的前k个元素 ## 字节 懂车帝 1. sql 考了最高数学成绩的学生 2. 手写单例模式 3. 算法,加权随机,实现一个随机函数,有一个数组,每个下标的返回概率是对应下标元素的值除以数组和。 4. 给你两个事务的每条语句执行顺序,给出不同隔离级别下每个查询语句的返回值 5. 给定联合索引,指定查询条件的各自索引命中情况,为什么要遵循最左匹配原则 6. b+树,优缺点,为什么超过三层就要分库分表,一定要分吗,是绝对的吗 7. 聚簇索引,非聚簇索引 8. redis常见数据结构及使用场景 9. 局部性原理 10. 进程和线程区别 11. 进程的通信方式 12. http请求状态返回码,流量太大了,服务扛不住返回什么 13. arraylist 和 linkedlsit 区别 14. 实现多线程有哪几种方式,有什么区别 15. 继承和实现接口的区别 16. 项目难点,sharding sphere底层原理 17. 什么是雪花算法,有什么问题,怎么解决时钟回拨 18. 缓存雪崩,缓存击穿 19. 什么是rbac,基于角色是什么意思,有什么好处 20. 请求到后端框架的处理流程,权限控制是在哪个环节实现的 21. 设计一个微信点赞功能 ## 美团二面 1. 项目介绍,难点亮点,分表,以图搜图,ai扩图 2. 竞赛经历 3. 聊天 4. 算法,二叉树的最大路径和 (lc原题) 5. 聊天

大家好呀,这里是轩轩,本来想着周末一定要赶紧把需求赶完,但是一打开电脑就不想干了,先把面经出了吧 🤣 美团 - 二面 (好像是 HR 面和业务面放一起的感觉,由 ld 一起面了) 面试官人特别好,基本都是以聊天的形式在问 🥳 : ) 1) 闲聊了十分钟 2) 实习相关 (详细内容略) 3) 协程和线程有什么区别 4) 项目简单介绍一下 5) Prompt 技巧你是怎么学的,有了解到哪些 6) 什么时候用 zero-shot 什么时候用 few-shots 7) Transformer 你了解过吗,能不能稍微通俗易懂的讲解一下注意力机制 8) 记录一下感觉有意义的闲聊对话: 我: 既然我们部门不是追求特别高的并发,那是具体是注重什么呢 面试官: 其实高可用高并发就是基本功,所有系统都要保证这个,当然这个我们肯定希望越高越好,但是很多时候都要考虑到用户的体验,比如 2s 优化到 1s 和 1s 优化到 800ms,其实后者用户的体感不强,所以我们研发做的东西,最终落脚点都是用户,研发做的就是要去帮助业务达到它的目标,流量大和流量小都是看具体的业务。并且带来的挑战吧,不见得流量大的一定比流量低的挑战要大,其实高并发的解决方案是一个非常成体系的解法,我面试的每个同学都掌握的很清楚,无非就是三板斧,不就是限流,缓存这种空间上的冗余,要么就是时间上的解耦,搞成异步这种,你可能毕业之后干一年就腻了,比如你在字节现在做的,SQL 调优,接口优化,并发等等,但是你不可能一直做这个事情,很多时候还是要多去尝试一些系统才能知道,什么是真正有用的东西,或者说这个系统是给谁服务的。 9) 项目中你觉得有什么难点 10) 如果用户一直停留在等待页面,想实现结果出来了之后就动态刷新怎么做 >> 轮询,WS,SSE 11) 闲聊: 学习方法,兴趣爱好 12) 反问: 我: 刚刚有聊到,不可能一直做这种,但是我理解后端不就是 CRUD,和 MySQL,Redis,MQ 等等交互吗,可能我实习就会这么多,但是干了一年还是只会这么多,无非每家公司的中间件平台不一样,那我真正应该注重什么呢 面试官: 你说得对,我们讨论一下,AI 时代下业务或者企业,对于程序猿这个岗位的要求会不会发生变化,当然现在还没有标准的答案,但我觉得每个程序员都要思考一下这个问题。 - 现在后端确实 CRUD 做的比较多,当然也要看业务,有些业务比较固化,每天就是小的迭代优化,只需要 CRUD,有的甚至都不需要和数据库,MQ 接触,数据都是从别人那边 RPC 去取就行。 - 当然这是个人观点,AI 时代下对于我们后端而言,可能之前不会去写前端,但是有了 AI 就可以去写了,大家的职能定位可能会发生一些变化,你会发现自己什么事都能干,业务的事情比如数据分析,甚至运营的事情你也能干,核心都是为业务服务。 - 所以说我们研发不要只局限在把中间件用好,或者在什么场合用什么中间件,这个当然没问题,但是这种事达到一定程度之后每个人都可以这样做到这一点,说到底程序员就是新一代的手艺人嘛,技能库其实就这么一点,程序员薪资比较高就是因为它有门槛,未来会不会还是这样也不一定,我们也没数,能做的就是把自己的技术边界拓展,解决复合领域的能力给增强,不仅仅说是把代码写好或者中间件用好,可能可以去想业务出现某个问题,可以通过技术把他解决,也可以通过协作等方式解决,问题最终都是解决了。 - 从我的团队来说,大家都是和业务走的越来越近,有的时候技术的解决方案其实可能看的不是很重了,更多还是看能不能帮业务解决问题,当然像有些大流量的场景,确实要专注于这种场景,说白了解决流量问题就是他们的业务,每个团队承担的使命是不一样的,不知道这么说你能不能理解。 >> 后记: 感觉这场是最有意义的一次面试,虽然到现在也没有非常理解有些内容的含义,感觉还没到理解到这些点的时机,或者可能要在实战中多接触才能懂,有没有理解的小伙伴给我梳理一下面试官的意思,或者自己的看法 🙏 13) 结果: 电话 oc 淘天 - 三面 + HR 面 上次淘天来学校宣讲会,面见了 ld 和 HR,我是学长内推,而且进度算比较快,因此两位也来找我直接交流了,了解到我在杭州实习之后约了线下去园区面试,淘天可以说特别的热情,学长,mt,ld,HR 全都主动来找过聊天 🥳 (聊了实习和项目,由于线下就没录音,记了几个印象比较深的) 1) 项目和实习相关 2) 有没有用过 RAG 或者微调,有没有用过 AI Agent 3) 有没有了解过 MCP,你觉得这个有什么意义 4) 有个高考分数表,写个 SQL 把每个省份的前三名查出来 5) 结果: 签了 offer,但是也明确后续还会考虑其他公司,HR 也说了可以先签着,后面可以撕 😇 饿了么 - 一面 刚开始 3 分钟就知道和面试官聊不来,感觉面试官语气很轻蔑,也可能是我自己的原因,没想到还给我过了 🤡 1) 面试官完全没问实习(因为用的是 go 所以不问😅),然后项目说昨天刚见过,都不是很想问 💩 2) 项目中的表结构怎么设计的 3) 分表有什么具体的考虑吗 4) 项目中缓存怎么用的,缓存失效怎么处理 5) 缓存一致性是怎么做的 6) 为什么要用消息队列,有没有其他优化用户等待的方案 7) 说一下你调大模型的过程吧 8) System Prompt 和 User Prompt 是什么,除了这俩之外还有什么类型的提示词,有没有了解过 9) 想做一个通用的限流模块,你会怎么做 10) 你提到 Sentinel 有没有了解过它是怎么实现的 11) 封装是什么,可以介绍一下吗,一般在 Java 开发中会怎么使用 12) 面向对象的特性可以介绍一下吗 13) 抽象类和接口有什么不同,什么场景下用接口,什么场景下用抽象类 14) 有用到 Java 的多线程吗,在什么场景下使用的 15) 线程池你是怎么设置的 16) 介绍一下线程池的工作原理 17) 你用的是哪种拒绝策略,如果我想处理异常有没有其他的拒绝策略 18) SpringBoot 你觉得最核心的特色是什么 19) IoC 是什么,在 SpringBoot 中是怎么发挥作用的 20) 循环依赖是怎么解决的,两级缓存可以解决循环依赖吗 21) SQL 语句会写一些 JOIN 语句吗,JOIN 有哪些方式你了解吗 22) JOIN 内置的算法你知道吗 [× 没了解过] 23) 事务怎么实现一个版本机制 24) 是不是所有的数据库都有事务机制 >> 第一次背这么多八股问题,乌鱼子,感觉这次面试没有收获到任何东西 😅 25) 你项目没有上线嘛,但是前一个同学有演示,你是前后端都是自己写的吗,那你没写前端的话,怎么做的测试啊 🤡 26) 你和测试的协作在软件生命周期属于怎么样的一个流程 27) 你觉得软件生命周期完整的是什么样的 28) 研发在运维期间其实也要做很多事情,你有了解过吗 目前十面全过,已经拿到淘天的 offer 了,下周打算把美团的 oc 和其他几家的后续面试都拒了,继续鏖战 WXG 👍

蚂蚁一面面经

**1.实习和方向偏算法,为什么想做开发?** **2.讲一下了解的设计模式?说说最熟悉的两个** 3.**理解的redis,为什么要用redis,除了查询比较快之外。讲一下你用redis的案例,具体是什么,代码中怎么体现的?** 4.**redis实现分布式锁,具体怎么实现?代码是什么?还有哪些能用来实现分布式锁?** 5.**哨兵机制** **6.讲一下rabbitmq,消息队列优缺点是什么?再对比一下其他消息队列。** **7.数据库水平和垂直拓展** 整体面试体验还行,答的稍微模糊的东西面试官没继续细问,再多问一句可能都顶不住

阿里淘天 一面

# 阿里淘天 0324 一面 1. **自旋锁和Reentrantlock的使用场景的区别** 3. **MyBatis和MyBatis-Plus的区别** 5. **Spring事务传播级别** 7. **数据库用JSON存储的弊端和优势** 9. **缓存击穿怎么解决** 11. **缓存雪崩怎么解决** 13. **深分页优化查询怎么解决** 15. **Excel大数据量导入遇到OOM怎么办** 17. **Rxjava使用AI调用如果客户端断开连接了怎么办** 19. **黑白名单+字典树 具体是怎么实现防止危险操作的** 21. **项目中印象最深的一个点**

Hello 大家好呀 这里是轩轩~ 🌟 最近又是笔试又是面试,还有一个比较大的需求独立实现,很累很累 所以没法及时更新面经,请大家见谅,周末闲下来正好回顾一下 😋 这几次的面经都比较偏聊天,基本没问啥问题,但是都会涉及到大模型,AI 这块 🤣 京东 - 一面 没有特别投哪个部门,选的方向是都喜欢,被金融部门捞了 面试官特别友好和礼貌,特别能聊,感觉面试氛围很放松,问的比较浅,基本上我只讲了 20 分钟,面试官讲了 30 分钟 👻 1) 闲聊,个人情况,学校学了啥,语言上有没有问题,目前实习的情况,有没有想转正 2) 面试官讲解 ToB 和 ToC 的区别,以及入职之后的期望,暗示尽快入职和转正 3) 实习做了哪些模块,有什么挑战问题 4) 项目中的模块,你觉得你的难点真的算难吗 5) (1) 我们肯定希望流量越多越好,迫不得已才采用限流,兜底方案,现在假设你的链路中流量很大,不想让你做限流,你有什么办法扛得住;(2) ToC 场景下,现在大家都在接入大模型,但就像你说的,它的算力什么的就是瓶颈,在这种场景下你有什么解决方法; 6) 你在 Java 中常用的集合有哪些 7) 比如 ArrayList 中存了个数组,里面有元素的数据,如何识别出来重复的元素 8) 多线程安全问题的本质上原因是什么 我: 多线程同时修改一个元素吧 面试官: 这个其实不算本质,只能算现象,那为什么同时修改一个元素会有问题呢 我: 同时操作同一块内存地址 面试官: 再往下呢,为什么操作同一块内存地址会有问题呢 我: CPU 操作同一块内存地址有个先后,会导致数据覆盖问题吧 (现在想想感觉没答好,应该回答 JMM 模型这块的) 9) 闲聊,你觉得自己是个怎么样的人 10) 反问,面试官给我讲解高并发怎么看待和应对,互联网完整的业务理解,岗位的业务做什么 11) 再次暗示如果后面成功过了,一定要尽快入职,可以转正 (京东这么缺人吗😅) 12) 结果: 面完之后秒过,约了二面 美团 - 一面 没有特别投哪个部门,选的方向是都喜欢,被 CLC 核心本地商业捞了 面试官应该是入职之后的 mt,也特别的友好,氛围也很轻松,我真的很爱这种聊天式的面试,谁懂 😇 1) 实习主要做了什么(具体内容略) 2) 闲聊,现在投了几家了,情况怎么样,未来想在哪发展 3) 项目中涉及到大模型的是部分怎样的 4) 闲聊,平时编码的时候怎么用 AI 的呀,公司有用 Cursor 这种吗 5) 面试官: 感觉你的技术很丰富,就不想问你什么专业技能了,像什么事务,Redis 不问了 (我直接没绷住) 6) 不过你用过 ES,给我讲一下 ES 这块吧,为什么 MySQL 用的好好的要切到 ES 上呢 7) 实习和项目中有遇到过什么问题或事故吗 8) 外卖你肯定用过吧,打开之后会给你附近几百米的商家,你觉得它们底层是怎么实现的 9) GEO 数据结构的底层你了解吗(我还真没看过😭),如果让你实现你会怎么做 10) 闲聊,你平时是怎么学习的,对于 AI 你了解多少 11) 算法题 - 反转链表② (面试官直接说出个简单的吧,问我反转链表刷过吗😂) 12) SQL - 找一个表中出现次数为1的最大数 (忘了有 Having 子句了,面试官说没事没事,这种题无所谓) 13) 结果: 面试官说要等这批都面完,然后两天后通知过了,约了二面 淘天 - 二面 1) 实习相关(具体内容略) 2) 你刚刚有提到过 RPC,你有了解过 RPC 底层的原理和实现的要点吗 3) 让你自己去实现 RPC 框架你会怎么实现,刚刚提到的技术点你会怎么选 4) 你刚刚讲到了通信,Java 中你有了解过有几种通信方式吗 5) 你有了解过 Reactor 模型吗 (不会 😇) 6) 项目中的分表和 MQ 是怎么用的 7) MQ 的底层你有了解过吗 8) 你项目中是怎么用大模型的,你有了解过大模型现在的情况,以及在工程中有哪些应用有了解吗 9) 有了解过 AI Agent 这方面吗,有了解过 Transfomer 底层的框架,各个的环节在做什么吗 10) 你的项目中 ES 和 MySQL 什么情况下数据会不一致,怎么保证一致性的 11) 有个问题就是你这种方式不够实时,如果要做到实时的话有没有其他方案 12) ES 你了解的多深,介绍一下你的理解 13) 你项目中有遇到踩什么坑吗 14) 说说你目前实习的,当然是不敏感的,你做的项目相关的情况,背景,方案,职责,你的思考与落地 15) 你是怎么样快速学习一个技术并且上手的

阿里淘天一面 25/3/12 腾讯一面 腾讯会议部门 25/3/13

# 阿里淘天一面 25/3/12 1. java基础数据类型有哪些,占几个字节 2. stringbuffer stringbuilder 3. 为什么平常使用字符串要直接定义一个string而不是stringbuilder 4. 定义hashmap <Object,Object>,put一个(new Integer)的值, get(new Long)能否查出来 5. 两个线程,一个线程a,打印a,一个线程b,打印b,如何让这两个线程按照ababab的顺序进行打印,代码具体如何实现 6. 多级缓存如何设计的 7. 查询返回null值(缓存穿透) 8. 使用布隆过滤器解决缓存穿透时,里面存储的是什么 - **初始化加载**:需在系统启动时将数据库中的有效键预加载到布隆过滤器。 - **动态更新**:新增数据时需同步更新布隆过滤器,确保一致性。 9. 某个redis节点单个热key怎么处理 本地缓存, 数据分片(将 `hotkey` 拆分为 `hotkey:1`、`hotkey:2`、`hotkey:3`,并在客户端随机访问其中一个子 key。),读写分离,限流降级 10. 分段锁是为了解决什么问题,分段锁是按什么划分的数据 11. 研究方向(大模型微调的相关问题,微调样本的关系,promt的设计,优化) # 腾讯一面 腾讯会议部门 25/3/13 1. 介绍一下项目(云图库),项目背景,包含哪些部分,完整的业务流程,使用的技术,数据怎么存储的 2. 鉴权是怎么做的 3. 怎么确认用户的身份(session),session存的是啥,sessionid是什么格式,怎么生成的, 4. cos有哪些安全问题,怎么保证安全, 5. 共有读写还是私有读写,共有读私有写与私有读写有什么区别 6. websocket建立连接的过程,具体分为哪几步,websocket的头是什么样子 7. redis在项目中是用来干啥的,key是什么 8. 查询的条件有哪些,查询的流程是怎么样的,数据库查询出来数据的是什么格式, 9. 有没有做过压力测评,有多少QPS 10. 项目的挑战点(团队空间,鉴权,协同编辑) 11. 协同编辑的流程,怎么做到多人协作的(编辑锁) 12. 如果需要多人编辑的话应该怎么做,如在线文档 13. 如果重新做这个项目有哪些可以优化的点

淘天 - 一面 还是喜欢问的偏应用层的,整体都比较简单,我也比较了解,昨天那种偏 OS 的我真的会谢 👻 1 实习 (具体业务略) 1) 什么场景下要使用事务,事务使用的时候要注意什么点 2) 长事务到底是指什么,有什么问题,怎么避免长事务 3) 事务的原理是什么 4) 为什么深分页性能会比较差 5) LIMIT 100000, 10 在 B+ 树中是怎么具体执行的 6) 场景: 让你设计一个商家用户表,这个表数据量会比较大,读取会大于写入,会被其他服务使用,你会怎么设计 >> 我: (1) 索引 (2) 水平分表 + 垂直分表 (3) ES 异构数据 (4) 数据类型 (5) 读写分离 7) 你怎么区分常用的字段和不常用的字段呢,你为什么是根据查询的角度来考虑 >> 面试官: 你不应该根据查询的角度来考虑吧,应该根据写入的角度来考虑,经常修改的字段就会经常加锁,通过这个角度来进行拆分,常写的和不常写的,不能根据查询来分,今天读不到,那下次业务变化了,又读到了,这个表怎么迁移啊 8) 放 ES 查询有什么要注意的点 9) ES 查询和数据库查询有什么区别呢 10) 什么是读写分离,你了解吗 >> 我: 但是对于用户这种比较重要的,感觉必须读写主库吧 11) 那你区分这个重要和不重要,你怎么理解呢 >> 面试官: 所以根本上还是要根据你的使用场景对吧,比如说金额,必须要读到实时变化的,就要查主库对吧,从库和主库最大的不同就在于有延时和数据丢失 2 项目 1) 什么场景下用消息队列 2) 你大概知道 MQ 是怎么实现的消息发布和订阅吗 3) 多个消费者都要消费同一条消息怎么实现的,比如订单创建,有支付服务,履约服务会消费这个订单消息 >> 我: (这边我傻了,忘了有广播了) 4) 那让你来实现你怎么实现 >> 我: 消息中间件作为平台方,主动把消息推给他们 >> 面试官: 那你推送失败了,你怎么保证可靠性呢 >> 我: 分情况吧,(1) 消息成功送达,但是消费者消费失败,他们自己维护本地消息表,看每条消息的任务状态,开定时任务扫本地消息表,发现消费失败的消息作回捞重试,重试先用 CAS 看订单是否消费完成再重试,做一个 double check;(2) 消息没有送达到消费者,维护一个长连接,发消息给消费者之后要给我一个 ACK 回应表示收到,没回 ACK 就用指数退避重试,多次重试失败认为对方宕机,写入中间件维护的消息表,等对方上线之后再推过去 >> 面试官: 这些都是基于你的考虑,那比如说消费方每一个都是集群的环境,但是集群肯定只能一台机器收到一次消息嘛,你怎么实现这一点 >> 我: 他们自己内部做负载均衡 >> 面试官: 你的意思是消费者那边自己做路由吗,那岂不是太复杂了 >> 我: 有道理,那他们来我这做个服务注册,我维护个注册中心,我来做负载均衡 5) 大模型你认为怎么结合业务产生比较有价值的结果呢,从技术角度来考虑呢 6) 你知道限流的原理吗 7) 比如说实际的过程中,应用都是集群服务,都要加限流保护自己,不让上游服务过多调用自己,对于集群的限流你觉得怎么实现,因为你这些算法都是针对于单机的对吧 >> 我: 在网关层做吧,做个 mp := &map[key][]*model.machine{"1": {IP1, IP2, ...}, "2": {IP3, IP4, ...}},然后负载均衡到哈希的 key >> 面试官: 那你这样有很大的问题啊,这样就相当于你所有的服务上层都要架一个网关层才打到集群啊,有很多的缺点,有其他方案吗 >> (傻了,想不到解决方案) >> 面试官: 你刚刚也提到 Sentinel 了,是不是没有详细了解底层架构,可以去看看它的内嵌上报 8) 反向压力你怎么做的 9) 如果说消息中间件的堆积这种,你看过相关的知识吗,为什么会出现消息堆积 >> 我: 消费速度跟不上 >> 面试官: 你比如成熟的中间件怎么处理消息堆积的你知道吗,消息队列本身,不是从消费者出发 >> 我: 持久化吧 >> 面试官: 持久化是指全部写盘吗 >> 我: (两眼一黑,不知道怎么办) 开备用队列存放吗 >> 面试官: 还有别的思路吗 >> 我: (干沉默了,想不到解决方法) >> 面试官: 没事没事,这种属于那种偏实际的场景了,你可能接触不到这种 10) 给我讲讲什么场景用多线程,多线程要注意什么问题 11) 我看你用的是 Go,基本的 Java 你应该会写吧,Java 中有很多线程不安全的类嘛,你怎么解决这种问题呢 3 结果 面完之后面试官加了我wx,还是很开心的,但是没明确过没过,还没约二面 🙏 面试表现感觉比昨天好,而且也发现很多不懂的,下来去学一下 Sentinel 内嵌上报和消息队列中间件的消息堆积处理 🤡

26届转正暑假实习 蚂蚁一面 昨天晚上7点收到了蚂蚁的电话面试邀请,有点突然,他刚开始打电话给我我没接到,然后打回去他又没收到,最后还是他打过来😂,我以为我笔试都没做,应该不会收到面试。 因为忘记录音,所以只能凭记忆复盘一下,大伙凑合看吧。 1、自我介绍 2、你的学历是怎么回事?我看你放的博客上面有一篇文章,你2024年变成本科生,现在就大三了? 额,我其实是专升本,读了三年专科,然后专科毕业直接到本科大三,不是从本科大一开始。不是那种函授本科哈,我是正二八经的全日制本科大学生,我现在还在学校呢(说的我自己都快笑了😂)。 (这把真的是被自己坑了,我简历上写的是四年本科,然后博客上有时候发一些个人感想,不小心透露了信息,还好他并不介意我的学历) 3、我看你上面有两个项目,关于智能bi项目,描述一下 你的系统预设是怎么做的?放在哪里的? 你用的是什么ai模型? 你是怎么通过ai分析文件和诉求来实现的数据可视化? 你用的ai模型是spring框架自带的吗? 你可以去了解一下springAI框架 你简历上对ai接口做了二次限流,利用hash表存储ai接口调用次数做限流是怎么回事? (这题没答好,其实redisson提供了分布式的一次限流是基于技术上的限流,hash存储ai接口调用次数是基于业务层面的二次限流) 你的限流参数设置的是多少?怎么做的压测?压测结果?(这个是真忘了) 分布式限流redisson里面用的限流算法是什么? 我:是令牌桶算法,它是—— 他:这个不用跟我扩展 你是怎么压缩数据的,减小单次token输入量的? (这题我在项目上是真没注意到,只能说是通过easyexcel提供的方法实现的压缩) 4、你这个api开放平台是怎么做的? 你里面用了一个api网关是吧 你的api签名校验是怎么实现的? 你的这个api开放平台的实现流程,aksk的作用? 说说为啥用Dubbo? Dubbo和SpringCloud的区别? Dubbo协议用的是什么协议? 5、你还用过其他的ai吗? 我:我用过目前比较热门的deepseek,它比星火模型更加好用,因为星火模型它的回答有些是错误的,它有时候会按照我的思路去回答问题,对我提出的疑问回答的并不是我想要的那种。但deepseek不一样 他:那你都问过什么问题,做了对比呢? 我:比如关于死信队列和延时队列 他:那你讲讲死信和延迟队列的区别 6、除了这上面的两个项目,有其他印象比较深刻的项目吗? 我:我做过一个秒杀商城项目,虽然这是b.站上烂大街的项目,但他符合技术使用的特殊应用场景,比较经典,还是很值得一做的。 他:说说你做的这个秒杀商城项目? 他:这个分布式定时任务是怎么做的? 我:他是将秒杀商品分成不同的场次,使用分布式任务调度进行任务的分片,然后在秒杀时系统会校验当前的时间是否在秒杀范围之内。(说实话关于分布式定时任务怎么实现的分片我也有点不记得了,其实只需要配置分片参数即可,和分库分表差不多,只是这个项目我没想到他会问,压根没看) 他:…… 8、他让我结合秒杀商城项目做一下智能bi项目的扩展 基于智能bi项目ai接口调用限制,可以再扩展一个支付系统,但因为不好设计,所以没做。因为支付不同的金额对ai接口的调用额度不同,需要设计商品表,订单表,需要用到沙箱支付宝,并且将项目改造为微服务项目,分成四个模块—支付、用户、任务处理、……(难度系数几何倍数增长),架构设计目前还不是很熟。 7、结尾阶段 他:你这个博客做的不错,怎么断更了? 我:额,这段时间太忙,准备八股文啥的,就断更了。我喜欢分享知识,通过写技术博客增强对知识的理解,同时也会学习别人的文章。加上大学生活比较无聊,就想着写一写。 他:我看到有些实习的,会有一些自己的博客,还有小红书的,都挺好的。不要断更啊,继续保持~ 我:好的好的(傻笑)😄😄 他:你还有什么要问的? 我表现怎么样?您有什么建议吗?😅 他: 1、你这个项目其实挺不错的,特别对于目前ai比较火,但你对ai的理解不够,你可以去用一下spring官方提供的springAI框架,然后看看怎么实现的,而不是直接用别人封装好的ai框架。(行吧,原来是我能力不足😭) 2、刚才打电话的时候你语速有点太快了,可能是太紧张了。 有点可惜(这个时候我就知道我寄了🐔) 3、我当时就是看了你的这个项目不错,然后也看了你的博客,觉得有点意思,然后给你发的面试 4、然后他还说我是他26届暑假实习面试的第一个人(真倒霉啊,哥你要是多对比一下,我是不是还看得过去呢😅) 最后他还给了我一些鼓励,果然大厂的面试官就是不一样啊! 总结:这次面试真的有点可惜,面试的时候有点紧张,说话都没经过思考,导致答的并不是很好。下次一定要等个几秒,组织一下语言再回答,就不会出现中途卡壳。中途我卡了好几次,然后好几次都抢了他的话,他还是耐心地等我说完。 还有就是确实对项目和知识的理解还存在不足,还需要再深究一下。 面试时长50分钟,虽然挂了,但感觉还挺好的,面试官态度也挺好,也找到了自己的不足。

下载 APP