2020七牛云春招后端研发一、二面(实习)

2020.04.17 七牛云后端研发一面(实习)(33分钟)

1.自我介绍

2.介绍一下学校学的内容吧(如:操作系统、数据结构、计算机网络等)

3.大概介绍一下你的项目吧(我简历上写的第一个项目,从项目背景、技术选型、实现方式等介绍)
3.1 MQTT 是你们自己开发的吗?
3.2 MQTT 是应用层协议对吧?它是基于TCP还是UDP的?是长连接还是短连接?
3.3 说一下 MQTT Qos 0,Qos 1,Qos 2?(答得不好,忘了 Qos 0)

4.Redis 对比 MySQL,为什么 redis 是快的?(基于内存,单线程等等)

5.服务端网络编程方面熟悉吗?(不熟)

6.操作系统方面:
6.1 进程和线程之间的区别?
6.2 多进程之间的通信有了解过吗?举几个例子。(管道(匿名/有名管道)、套接字、共享内存、消息队列、信号量)

7.网络方面:
7.1 说一下网络4层协议???(大概说了下每一层的职责)
7.2 TCP 和 UDP 的区别?(可靠传输,流量控制,传输效率,传输模式(点对点,一对一,一对多,多对多)等)
7.3 哪些协议是基于UDP的?(DNS, DHCP, RIP, SNMP, IGMP)
7.4 应用层有哪些基于UDP的呢?(没答上来,说了:视频/音频传输可能会基于UDP。。大脑短路,7.3 中答的就是应用层协议,漏了个 TFTP)

8.算法:
8.1 两个有序数组合并;
8.2 说一下你最熟悉的数据结构,(我选了二叉树),题目:二叉树中搜索某个值,返回结点;
8.3 说一下上面两个算法的时间复杂度;
(注:没有发题目链接,现场口述一个题目,让你来写,也不要测试。我本来要写测试用例,面试官说不用,然后就看了一下代码,OK就没了)

9.设计模式:
9.1 说一下你比较熟的几种模式;(单例、工厂、模版方法、策略、动态代理、适配器、装饰者、迭代器、责任链等)
9.2 举几个你在项目中用到设计模式的场景吧;(我举了:模版、工厂,然后用 IDEA 写了伪码,边写边讲)

10.介绍一下简历上的第二个项目
10.1 这个项目就是针对服务端监控对吧?有没有针对设备端进行监控呢?

11.反问:
11.1 如何高效阅读源码,比如:Spring?
11.2 面试官是哪个部门?部门具体是做什么的?

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2020.04.23 七牛云后端研发二面(实习)

1.自我介绍

2.Java基础
2.1 int、long 占几个字节?Integer 占几个字节?
2.2 int[10] 的一个数组,它的内存占用是多少?Integer[10] 占多少呢?

3.网络相关
3.1 TCP协议有很多状态,介绍一下你知道的状态?(CLOSED、TIME_WAIT、CLOSE_WAIT、FIN_WAIT1,LAST_ACK?)
3.2 介绍两个你最熟的两个状态,咱们聊聊?(我选了:TIME_WAIT、CLOSE_WAIT)
3.3 在真实的环境下,比如一些已经上线的服务,在什么样的情况下会出现大量的 CLOSE_WAIT 状态?是什么样的原因呢?(我回答:我没有网络编程相关实践经验,问题到此为止)
3.4 在浏览器输入一个地址,HTTP的具体过程?HTTP协议是怎么工作的?(问的啥玩意?真没GET到面试问的点,就随便说了下DNS解析、建立TCP连接,短连接,长连接之类的内容)
3.5 HTTP 协议,你有详细观察过它的组成部分吗?它如何去描述一个HTTP请求结束,类似于这样的内容?(首部、Content-type,protocol,length,url,method:GET/POST?我还真给忘了)

4.系统
4.1 Linux 系统,平时玩的时候,哪些命令你是用的比较多的?(netstat、ps、tail、kill)
4.2 Linux 系统,查看内存使用量,用哪个命令呢?(free、df?)
4.3 Linux 系统下,进程和线程,实际使用起来有什么区别?(切换开销、通信效率、量级不同?)

5.数据库
5.1 MySQL 建立联合索引:(a, b, c),查询:where a = 10,where a = 10 and b = 10,where a = 10 and c = 10,where c = 10,它们分别有哪些会走索引?哪些不会?为什么呢?
5.2 MySQL 联合索引的底层实现原理?除了排序外(不知道,后来想想面试官其实想问的是:辅助索引只包含索引属性+主键索引,如果查询的字段没有覆盖辅助索引属性,需要通过主键索引回表?)

6.算法
6.1 手机屏幕手势解锁问题,有9个点,要求密码至少要有3个点连接,一个点被连接后不会再被连接,求总共可以有多少种密码设置方案?(我当时的思路:构造图、从每个顶点开始遍历,设置当前路径长度,先从路径长度为4的开始,用DFS搜索,然后再从路径长度为5的开始搜索,GG,没想出DP的方案)

7.系统
7.1 你对系统中断是怎么理解的?如果没有中断,系统会变成什么样?(我说:中断是一种协同工作的机制吧?)
7.2 你在实际开发中,在什么情况下会用到中断?(我说:我没有用到过中断的实际开发经验)

8.项目 & 工作经历
8.1 讲讲你用到的最多的、比较熟悉的开源框架?(我说:Spring、Redis,面试官:那就 Spring 吧)
8.2 Spring 中的依赖注入解决了什么问题?(解耦?控制反转?)
8.3 如果没有这个技术,我们的开发会变成什么样子?会出现哪些糟糕的情况?(代码臃肿、不够清晰、Bean实现的替换问题(优先级?))
8.4 你在实习公司中,是一个什么样的角色?(打杂CRUD -> 独立小工具 -> 独立小模块)
8.5 那你觉得有哪些收获呢?(讨论方案,项目扩展性,适应变化,中台做完项目要学会推广(写技术文档、讲座等))
8.6 技术上有哪些成长呢?(代码设计,设计模式的理解,学习框架的底层原理,接触了一些新技术)
8.7 你之后3、5年的成长路径是什么样的?按什么样的节奏发展?(Spring、存储、分布式及相关组件、业务方面)
8.8 你学习一个新事物的路径是什么?比如我让你去学习一下 Spark,你是怎么样去学的?(先简要了解 Spark 是什么,为什么出现这个框架,它解决了什么问题,然后有哪些相关技术,然后根据上级安排给我的任务,逆向推理出我要学习Spark中哪些相关的东西,再进一步学习)

#七牛云春招##七牛云##Java工程师##实习##面经#
全部评论
请问是实习?
1 回复 分享
发布于 2020-04-17 19:09
七牛全是网络么....我不敢投实习了,我网络菜的一批。尴尬了
点赞 回复 分享
发布于 2020-05-27 15:36
请问一下做的两个啥项目吗,我做的项目好low啊。
点赞 回复 分享
发布于 2020-05-12 20:04
感觉七牛的面试题还是挺有水平的hhh
点赞 回复 分享
发布于 2020-05-12 16:10
不是我面都没面,怎么说暂时不能给我提供下一次面试的机会????
点赞 回复 分享
发布于 2020-04-21 10:45
强啊
点赞 回复 分享
发布于 2020-04-20 21:59
二面有消息了吗?
点赞 回复 分享
发布于 2020-04-18 21:39
你项目问的细吗?你设计模式都咋讲的?
点赞 回复 分享
发布于 2020-04-17 21:00
同学你好,要不要过来阿里试一下呀,我们是数字供应链事业部
点赞 回复 分享
发布于 2020-04-17 16:56

相关推荐

(鼠鼠处女面,感觉自己说的磕磕绊绊的,逻辑不够清晰,面试官居然说回答的还好。好开心~一面秒过。)面试问题与回答要点1. 自我介绍 & 项目概览2. Go语言与Raft项目考察面试官提问:看到你简历说用Go实现了Raft,是有Go的开发经验吗?对Go语言了解多少?我的回答要点:背景说明: 坦诚说明是为了完成MIT 6.824课程实验,花时间速成了Go语言并完成了项目。能力边界: 承认目前主技术栈是Java/Python,Go的经验仅限于该项目,很多细节已生疏。掌握程度: 对Go的基础语法和并发(goroutine, channel)有基本了解。3. RAG智能问答项目深挖面试官提问 1:聊一下你基于RAG的智能问答项目,你在Elasticsearch里主要做了哪些工作?我的回答要点 (阐述RAG全流程):离线处理阶段:数据预处理: 将PDF论文转为Markdown。文本切块 (Chunking): 采用基于语义的切块方式,保证上下文完整性。向量化 (Embedding): 使用智谱的Embedding模型将文本块转为向量。数据入库: 将文本和对应向量一同存入Elasticsearch。在线检索与生成阶段:用户问题向量化: 用同样模型处理用户提问。向量相似度检索: 在ES中召回Top 3最相关的文本块。构建Prompt: 将召回的文本块作为Context,与用户问题组合成最终的Prompt。生成答案: 将Prompt发送给大模型(LLM)获取最终回答。面试官提问 2 :召回的Top 3数据可能内容相似度很高,但不一定完全符合用户问题,你如何避免给用户错误的引导信息?我的回答要点:优化数据源: 关键在于切块质量,保证每个Chunk都是一个逻辑完整的语义单元。优化召回策略:扩大召回量: 尝试扩大Top K(如Top 5),为LLM提供更丰富的上下文。增加多样性: 可以在召回时引入多样性策略(如MMR算法思想),除了最相似的,也召回一些“不那么相似但可能包含新信息”的文本块,避免信息茧房。4. 基于Redis的多轮对话管理面试官提问 1:你提到用Redis做了个性化的多轮对话管理,具体是怎么实现的?我的回答要点:持久化方案: 放弃框架默认的内存会话管理,选择Redis做持久化存储。数据结构: 使用Session ID和User ID作为Key,将用户的多轮对话历史关联起来。存储格式: 将包含发言人、内容、时间等信息的对话历史序列化成JSON字符串后存入Redis。读写流程: 当新一轮对话发生时,从Redis取出历史记录,反序列化,追加新内容,再序列化存回去。面试官提问 2 :LLM本身有上下文窗口(Context Window)限制,你是怎么突破限制,实现长期记忆的?难道把全部历史记录都传给模型吗?我的回答要点 (坦诚现状 + 给出解决方案):承认局限: 首先坦诚目前项目的实现确实是全量传入,在对话轮次很多时会超出上下文限制,这是一个待优化的点。提出解决方案:方案一 (摘要压缩): 对时间较早的对话历史进行总结,用一个简短的摘要来代替冗长的原文,从而压缩上下文长度。方案二 (RAG on History): 将长期对话历史本身也视为一个外部知识库。当用户提问时,先用RAG的方式从历史记录中检索出与当前问题最相关的几轮对话,而不是把全部历史都传进去。反问环节我问: 公司的具体业务?面试官答: AI硬件,做嵌入式芯片,主要应用在玩具中,与用户进行大模型交互。后端技术栈是Go。我问: 对我本次面试表现的看法和建议?面试官答: 整体不错,但项目经验偏校园和实验性质,缺乏工业级的深度。我问: 后续面试流程?面试官答: 总共2-3轮。
查看6道真题和解析
点赞 评论 收藏
分享
📍面试公司:摩尔线程🕐面试时间:9.1💻面试岗位:系统软件工程师❓面试问题:一面1.介绍项目,项目拷打2.linux系统中断硬件中断和软件中断,中断的全流程,中断的上下文,中断下半部分的机制(API),配合说明抢占3.linux系统的v4l2子系统的具体应用使用流程,具体的底层驱动框架(pipeline,media拓扑,三层结构都问了)4.设备树的解析时机和解析过程5.设备驱动的匹配流程(BUS match),然后到驱动probe的详细流程,驱动的匹配按优先级的方式6.设备驱动如何适配多soc7.yolov8模型的底层原理和开发中遇到的具体问题8.MQTT协议的具体实现,和TCP/UDP区别,详细讲解网络驱动流程(sk_buff,dma,中断)9.线程池的实现和与手动创建的区别,如何实现线程池共享资源的访问10.mutex和spinlock的区别,和使用场景,然后中断能不能使用spinlock11.项目中算法的原理详细说明(自己的项目)12.设计模式用了哪些(单例模式、策略模式、工厂模式全部细节都问了)13.如何部署yolov8到板子上的,然后如何进行量化和裁剪,如何提高识别速度14.对国内、国外板卡的认识15.对AI+嵌入式的理解16.反问:具体业务🙌面试感想:一共面试了1小时40分钟,鏖战所有的八股和linux驱动和内核开发,面试到1小时30分钟的时候,不用写八股了,面试官很满意,然后直接反问,同值通知一周内二面
查看16道真题和解析
点赞 评论 收藏
分享
评论
14
54
分享

创作者周榜

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