27届小红书客户端一面面经

面试官是个小姐姐,爱笑,面试氛围比藤子轻松(也可能我准备的更充分了,藤子一面面试官也超级好但是我太菜了整挺尴尬),八股和项目问了35分钟左右,然后开始写算法,算法还是不熟练,开始的思路错了,和面试官讨论了会讨论出正确答案写了下,哎这块还是要加强,算法老是记不住
没录音,纯靠自己记忆;面试完我实习的组拉着开了俩小时需求研讨会导致问的啥几乎忘完了😅
----------------------------------------------------------------------------------------
1.自我介绍
2.看你项目中用了mvvm架构,能讲讲为什么要用这个吗 -- 围绕mvc,mvvm将了区别和联系,顺带将了下mvp
2.最近还有种架构是mvi了解过吗 -- 不了解
2.看你项目中用了多线程处理网络请求,handler如何使用 -- 吟唱message,messagequeue,looper,handler的原理
补:翻转屏幕过程中activity会经历从创建到销毁的过程,viewmodel是如何解决
3.能用kotlin协程和viewmodel实现吗 -- 有记忆,小唱
4.安卓应用从点击到运行之间的过程是怎样的 -- 之前看过忘了
5.浏览器输入网址后的一系列流程是怎样的
补:如果是https协议,这个过程可能有哪些改变 -- 在tcp三次握手前先进行ttl/tsl四次安全加密,还有端口从80变443?面试官哈哈一笑。。
6.kotlin和java的类加载机制有什么区别 -- 回答了java的类加载机制,猜测kotlin和java类似
7.垃圾回收相关的知识了解吗 -- 这次把垃圾回收算法讲明白了,还讲了垃圾回收器
8.讲讲kotlin/java中的引用类型 -- 强,软,弱,虚以及对应的应用场景讲了下
9.讲讲堆 -- 堆存放各线程和类的共享变量,常量,静态方法
10.内存结构 -- 堆,本地方法栈,虚拟机栈,方法区(元数据区),程序计数器
11.static加在方法和类上的区别(?好像是这个意思当时理解错了,回答估计也不对,面试官还好心把正确答案给我讲讲)
补,看别人面经发现问的就是这个:如果一个方法加上synchronized的修饰,一个静态方法加synchronized 有什么区别?
12.讲下sychronized -- 优化前重量级锁,优化后会进行锁升级,偏向锁,轻量级锁(cas),重量级锁(阻塞)
补充:java中的反射了解吗 -- 了解应用场景,原理是通过class字节码强行访问私有成员或方法,由于没用过所以了解比较浅
13.hashmap的底层实现 -- 刚开始没反应过来,说是map,她哈哈一笑,我突然想起来是链表加红黑树,赶紧弥补;说起来她一说hashmap我就一直等他问concurrentHashmap结果就是不问气死我了
14.如何解决hash冲突 -- 学校数据结构课讲的是偏移量,按照偏移到无冲突地方学校那一套心里没啥底的讲了下
15.如果有十个数据你会用arraylist存还是hashmap存 -- 没思考直接说arraylist,想了下说应该看具体什么数据,如果是键值对有联系需要根据key找value的就map,否则arraylist,数组的查找快性能开销低
16.hashmap的扩容机制 -- 扩容因子?没咋了解过按照分布式id号段模式和arraylist扩容作类比猜测和他们扩容方式一样,都是达到一定比例自动再申请一段空间

算法:对称二叉树
反问:1.业务
         2.个人发展方向
         3.团队有用flutter或rn吗,还是安卓原生开发

大体就想起来这么多,纯靠记忆间隔五小时后回忆起的一些问题,后续想起来啥再补充
全部评论

相关推荐

前情提要 本人29届毕业,这几天也是春招火热期,于是在boss上投了几个公司。发了几份简历之后,第四范式公司hr初步问我了一些vibe coding的经历,之后打算联系我进行面试。面试内容问:简历中AI Agents的开发经历是个人开发的还是在实习?答:前两个项目是个人开发,后一个是团队开发的(项目:工作流、AI框架、Agent多端应用)问:索要项目上线的网址和在这个Agent多端应用中负责什么方向?答:这个项目的后端是一个golang、python的微服务架构,其中golang负责后端,python负责ai层。前端则是web端为vue3,移动端为flutter。我负责的是全部的的ai层和golang后端的跨域通信和部分后端功能和web前端功能的改进设计。问:询问项目的主要功能,和如何实现?答:使用langchain、langgraph框架,首先把工具通过mcp-adapters进行打包,之后ReActAgent进行调用工具与数据库进行交互,另一方面在进行增删改操作时由于ai输出不一定满足用户的需求,我做了一个独立的确认节点作为拦截中间件,截断了数据的写入,而用户可以来自行编辑或保存删除。问:Agent的工作模式都有什么?答:ToolsCallingAgent、ReActAgent、ReflectionAgent、PlanAndSolveAgent(并粗略展开每一种大概机制,此处不多赘述)问:介绍一下你对RAG的理解?答:我平时不太喜欢用RAG,主要因为两点,自己开发的时候大多数用不到这个技术,RAG最好在垂直领域来使用,尤其是ToB或者专精某一特定领域,而且前段时间不少人说RAG已死,指的是现在很多东西能替代RAG的功能;其次RAG的召回率并不算太高,想要优化召回率只能花费大量人力财力来进行经验微调。知识库开发的流程一般是,先进行数据清洗,之后进行向量化储存到向量数据库,召回时在进行一个向量匹配的操作问: 看到你做了一个memory上下文记忆功能的处理,可以说一下处理逻辑吗?答: 记忆可以分成长期记忆和短期记忆,我在长期记忆这里使用的是RAG技术,将用户强调或者比较有价值的数据存入,这样可以作为一个跨对话窗口的上下文,而短期记忆我也是做了一个上下文压缩,用了一个经验值作为阈值,等上下午到一定程度之后就会进行精炼,而精炼又有两种模式,我分为智能模式和机械模式,智能模式是通过llm进行关键信息等提炼,机械模式是通过正则处理去除冗余的工具调用日志和结构化导致的上下文污染问:对于模型的选型你是否有考虑呢?答:之前自己做过coding agent等类似的项目,在多智能体系统中对于不同的任务采用的模型不同,比如plan使用主力模型opus,编写代码使用中等模型sonnet,而探索项目结构可以使用haiku等小模型,这样的话既可以节省token花销也可以不降低代码质量问:你是否有AI编程的经历和理解?答:略(先是说了市面上各ai编程工具的差异性优点及缺点和我自己的订阅情况,之后说了开发模式相关如spec driven。ps:可参考该文章 AI 原生工程)问:对于Agent有没有什么熔断机制?你有接触过么?比如你的基模直接卡死了,你的后端是否有什么保底机制?答:有的,在项目中我对tool calling做了一个熔断机制如果工具调用失败超过三次就会进行熔断处理,防止反复重试导致系统崩坏。如果基模卡死的话,完全可以弄一个集群来处理,如果一个服务器掉了可以快速转到另一个提供llm的服务器。最终也算是过了
牛客92772631...:buer,夺少届?
查看9道真题和解析
点赞 评论 收藏
分享
03-04 16:42
已编辑
东莞理工学院 Java
面试官基本上都是用安卓的术语去问JAVA相关的基础内容,不断的对一些基础内容进行深挖和对比,再结合着业务场景去问,有一些内容我感觉比较偏,回答出来了2/3左右,但是安卓相关内容回答的不是特别好1. 介绍一下你对安卓开发、安卓研发从工程角度的理解。2. 你对转到安卓开发这个岗位的认知是什么?3. 安卓平台有没有存在壁垒、需要深入经验才能做好的技术方向?4. 说说 ClassLoader 的整体架构和理解。5. ClassLoader 在安卓里有哪些应用场景?6. 利用 ClassLoader 怎么实现热修复?原理是什么?7. 反射在安卓上的使用场景、额外成本有哪些?能不能大规模用?对包体积、启动速度有没有影响?8. volatile 关键字能解决哪些问题,不能解决哪些问题?9. 双重检查锁为什么要加 volatile?10. synchronized 锁升级过程是怎样的?11. 锁竞争在安卓端会不会造成用户可见的卡顿?12. Protobuf、JSON、ProtocolBuffer 这几种序列化对性能、包体积的影响和权衡。13. 安卓里 NDK 有没有了解过?14. 说说对 Activity、Fragment 的理解。15. 协程怎么取消?16. 协程里 Job 存在的意义是什么?17. Kotlin 相比于 Java 有哪些独有的好用优势?18. 什么是密封类(sealed class),优势是什么?19. by lazy 和 lateinit 的区别是什么?20. 说说你对 WebSocket 协议的理解。21. 安卓数据库(如 SQLite)的索引是什么,底层结构?22. 安卓里内存泄漏是什么?有哪些例子?怎么排查和治理?23. 最长无重复子序列。个人感想:怎么说呢?感觉还是比较可惜吧,感觉离大厂最大的一次机会了,但是安卓相关的内容有些确实不知道,感觉到面试官是结合着JAVA去提问一些安卓的内容,然后想问一些相似的场景,但是比较可惜了,有些内容确实是不知道,也没有接触过安卓开发,还是好好沉淀,准备一下吧
查看45道真题和解析
点赞 评论 收藏
分享
评论
8
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务