小米软件开发工程师(Java方向)面经

一面(9月5日)
为什么研究生做CV,现在找研发岗位;
描述进程控制块PCB,进程控制块中进程的哪些信息;
http与https的区别,https为什么能保证安全,客户端与服务端通过https进行交互的过程;
SQL中的几个基本命令,使用哪个命令可以在数据存在时进行更新数据,数据不存在的话则插入数据;
两个链表,找链表是否有交点,怎么找到交点;我说了自己思路后,面试官说让我使用栈来做一下(两个链表分别压入两个栈,如果栈顶元素相同的话说明有交点,然后同时pop,直到pop到两个栈的栈顶元素不相同的,说明刚才pop出来的结点是两个链表的交点);
讲一下自己对Java的理解,Java最大的特点,和其他语言相比有哪些鲜明的优势;
简单介绍一下单例模式、工厂模式、装饰着模式;
Java中注解是干嘛用的,这个我没回答好,面试官应该是想让我讲一下对Java注解的理解;
输入一个URL,URL中有个要调用的方法的字符串,那从输入URL到服务端调用相应的方法,都经过了哪些过程,用到了什么技术;
面试官问我个人对哪些技术了解的比较深入,有什么优势,对于哪些内容有比较独特深入的理解;
我做一个项目的时候,会怎么着手去做,会去如何完成好一个项目;
写代码:(1)从一个数组中找连续子数组的最大和;(2)两个字符串的最长公共子串的长度;这两个都是动态规划里面的基础题目,从了leetcode上可以找到对应的题目;
描述Dijkstra算法;
问我有什么问题;

二面(9月9日)
开始就先聊聊项目,项目多是CV相关的,简单聊了聊;
然后ConcurrentHashMap的实现原理;
AtomicInteger的实现原理,自己简单实现一下AtomicInteger中的increase()方法,写代码;
写代码实现一个装饰者模式;
两个一组翻转链表,写代码实现;
写代码,算法题:给定一个非负数组,A、B俩人轮流从数组头部或尾部取元素,AB俩人都会以对自己最有利的方式取元素,直到数组元素取完,取到元素和最大的玩家赢,求先手能否赢得游戏。
二面的内容基本就是这些,算是写了4个代码题,基础知识方面基本没问。面试官看着帅气而且友善(都说小米面试官帅,还真是),让我见一见下一轮面试官吧,哈哈。
#小米##面经##Java工程师##校招#
全部评论
有三面吗
点赞 回复 分享
发布于 2021-12-10 15:33
能问一下小米软件开发Java岗都需要学习什么东西😁
点赞 回复 分享
发布于 2019-09-29 17:02
我现在可以转测试吗
点赞 回复 分享
发布于 2019-09-18 23:06
有点难度
点赞 回复 分享
发布于 2019-09-12 01:05
总共几轮技术面试呀?
点赞 回复 分享
发布于 2019-09-11 18:25
这是看你学历问的吧,我感觉难度比之前看的都高
点赞 回复 分享
发布于 2019-09-11 11:34
二面是邮件通知还是电话直接面?
点赞 回复 分享
发布于 2019-09-10 21:10
中科大的cv研究生要转开发??
点赞 回复 分享
发布于 2019-09-10 17:06
你是硕士吗,项目CV是算法转开发?
点赞 回复 分享
发布于 2019-09-10 09:15
占个坑,等一面
点赞 回复 分享
发布于 2019-09-10 00:29
一面电话?
点赞 回复 分享
发布于 2019-09-10 00:25

相关推荐

1 移动互联网红利消退,增量市场转为存量竞争:过去十年,客户端开发(尤其是移动端)的爆发式增长得益于智能手机普及和移动互联网红利。然而,据工信部数据,2023年中国移动互联网用户规模已超12亿,渗透率接近饱和,新增用户增速降至个位数。市场从“争夺增量”转向“瓜分存量”,头部应用(如微信、抖音、淘宝)垄断绝大多数流量,新App获客成本飙升。中小厂商难以突围,导致纯客户端岗位需求锐减,企业更倾向于优化现有App而非从零开发新产品,甚至直接依托超级App的小程序生态(如微信、支付宝)降低开发成本。  2 跨端技术崛起,原生开发需求被挤压:为降低多端适配成本,企业普遍采用跨平台技术(如Flutter、React Native、小程序)替代传统原生开发。例如,闲鱼、美团等头部App已通过Flutter实现代码复用率超80%,而微信小程序生态容纳了数百万轻应用,进一步减少独立App的需求。原生客户端开发者若仅掌握平台特定技术(如Swift、Kotlin),竞争力将大幅削弱。即便在需要高性能的场景(如游戏、音视频),跨端方案也通过Skia引擎、原生模块混合开发等方式逐步渗透,原生开发的“护城河”日益收窄。  3 大前端融合趋势下,单一客户端技能价值稀释: 企业对开发者的技术要求从“专精单一平台”转向“全端通吃”。招聘需求中,“客户端+前端”“Android/iOS+小程序”的复合技能成为标配。例如,字节跳动等大厂已推行“大前端”团队模式,开发者需同时应对Web、Native、Hybrid等多种场景。纯客户端开发者若无法扩展技术栈(如学习JavaScript、Node.js),不仅晋升机会受限,还可能因团队结构调整被边缘化。这种趋势使得客户端岗位的“纯粹性”逐渐消失,转而成为大前端领域的一个子集。  #客户端# #客户端研发工程师# #客户端面经# #客户端春招#
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
分享
1. 自我介绍讲项目2. 项目里neo4j的rbac介绍:不同用户-角色-权限(public、reader、admin..)3. 设计系统,抽象一点:用户、角色、权限、用户-角色、角色-权限表4. 权限怎么定义?通用的还是自定义? 兼容,拆成动作—资源5. 怎么权限判断:查ID匹配。慢怎么办?主要靠缓存:redis6. 过程中安全怎么做?https传输+hash。http明文传输,https加密,且有证书7. 讲https怎么握手:先发请求,返回证书+公钥,然后用户端验证,再发自己的对称密钥用公密加密,用用户的密钥通信。8. 数据库类型介绍:关系型sql和非关系下分键值、图等等。9. mysql索引类型:一开始说的B+树和哈希。。后面发现是主键索引和其他索引,主键存id和整个,普通的存单字段列和ID10. 主键索引和普通区别:聚簇索引和辅助索引的区别。主键索引消耗高,存整个;普通的根据字段找ID找整个表算法题:1. 找字符串的无重复最小子串长度:双指针滑动窗口,for里加while其他的:1. 大模型和对未来ai发展:agent和小模型2. 简历项目比较杂。。个人规划:先搞后端or算法然后还想试试产品(确实比较乱了,没有一个很clear规划反问1. 技术、工作内容:go、java做基础架构sre研发,后台平台研发。包括容量管理什么的,也要用到云。2. 建议:找到一个自己的方向、别只会py。。多搞项目用go、java做一下技术,想项目的背后原理有没有其他实现方式补充问k8s、最新ai:k8s的基础架构讲了一下,操作流程;ai的最近主要关注agent和小模型(轻量化物联网和分布式计算那种)。问自己搭过agent用吗?没。。题差不多都答上来但也没有感觉很好 lol
字节跳动一面949人在聊 查看16道真题和解析
点赞 评论 收藏
分享
04-15 20:33
已编辑
门头沟学院 Java
双非本偶遇阿里系约面,深挖项目强如怪物,拼尽全力无法战胜岗位Java研发工程师基本是跟着简历一行一行问,没什么参考价值的面经,全程1小时多几分钟TimeLine2.24 官网内推投递3.15 笔试 ak4.10 约面4.15 一面 挂1. 自我介绍2. 实习比较有挑战性的事情?3. 消息推送是由系统触发还是人为触发的?4. Redis Pub/Sub数据会丢,有没有考虑用其他方式让他不会丢呢?(答了Stream)5. 为什么选择Kafka,而不是其他,比如RabbitMQ?RocketMQ?6. Kafka快的原因是什么?7. 接T6,那其他MQ是否也能通过顺序读写磁盘做到这么快?(乱答一通)8. 实习期间SQL优化怎么做的?9. 联合索引ab,where b > 2 and a = 1可以用到索引吗?10. 刚才提到最左匹配原则,为什么是最左匹配?11. 自增ID和UUID作为主键有什么区别?12. UUID作为主键插入B+树会怎么插入?13. 大VARCHAR,TEXT能否存入聚簇索引?14. Kafka异步处理为什么能提高性能?15. 现在有这样一个场景,我要针对某个特征(比如针对某个地区、某个年龄、某类客户端)的用户或者说全部用户进行消息推送,这种场景你会怎么设计?16. 消息推送记录是否会落盘?全量用户推送数据量很大,比如百万、千万级甚至上亿,如果我多推送几次,数据量就数十亿了,MySQL存储的话数据库压力会很大,有没有什么好的解决方案?(一时间没想到什么方案,先扯了分库分表,面试官显然并不满意)17. 有没有其他更好的方式?比如分析他的特征?提示一下,这种全量推送,一般来说内容是一样的。(答从业务角度考虑,考虑将这类任务特殊处理,只存一行数据来确认这次任务是否推送成功)18. 既然你要这样存,那和原来存的表就不兼容了,这一部分你怎么解决?(开始扯NoSQL,MongoDB的名字还忘了,难绷)19. 链路追踪怎么做的?为什么要做这个功能?(自定义LogUtil埋点)20. 如果说我现在是微服务,各个模块之间的调用链路非常复杂,甚至可能出现某个模块被多次重复调用,那你会怎么做链路追踪?怎么知道这个模块是第一次调还是第二次调?我怎么通过这个链路追踪来知道出问题的时候具体是哪里出问题了?(几乎完全没思路,已经开始汗流浃背了)21. 限流是怎么设计的?限流的方式有哪几种,为什么选用滑动窗口?令牌桶不行吗?22. (场景是24小时内请求次数限流)为什么不能固定窗口切成一小时一次的?为什么不能用令牌桶设置生成速率来做?23. 去重(接口幂等)怎么做的?(通过Redis)24. 接T23,那假设现在你下发消息失败了,Redis又已经存入这个key,那怎么再下发这条信息?(答设置合理的key过期时间)25. 接T24,那Redis要设计过期时间,如果你发送成功了,然后服务又崩了,不知道成功了,现在再发一次或者重试不就不能做到去重了吗?这种情况你怎么处理?26. 为什么使用责任链模式?可以是模板方法模式吗?可以是装饰器模式吗?27. 你说使用Kafka搭配EasyExcel流式处理做异步用户批量注册,这是怎么个原理?28. 直接用内存队列或者线程池不行吗?他们的差异是什么?(答内存队列如果宕机对丢失信息)29. 接T28,那有没有什么优化手段?30. Kafka不保证唯一消费,消费有可能重复,这种情况你怎么处理?(通过UNIQUE KEY + 插入时IGNORE)31. 用了WebSocket实现数据搭配,为什么用WebSocket?32. WebSocket是长连接对吧?那其他长链接我们也有用TCP的嘛,那他们有什么差异?33. 刚才提到了HTTP升级到WebSocket,他是怎么升级的,具体是什么命令呢?34. WebSocket粘包问题?35. TCP的包是一个一个发出去的,如果说有一个包延迟了会怎么办?36. 前面(T28)提到过kill -9,kill和kill -9的区别是什么?有没有用过其他Linux的命令?37. 如果说CPU占用非常高,如果是某个Java线程出问题了,怎么定位?(答了Arthas)38. 如果只用Linux命令呢?(top,jstat,顺便开始扯可能是因为内存爆了引起fullgc导致高占用,撤jmap)39. 那垃圾回收算法有哪些?40. G1和CMS的主要差异?41. 玩过什么游戏?42. base地要求?43. 用过什么加速器?反问:1. 改进?建议?2. 面试结果大概什么时候出?(本周)3. 业务?(biubiu加速器)半小时后流程已结束,我的暑期到这基本也结束了,以3面0offer收场,希望接下来能找到一个好一点的日常混混日子罢
最喜欢春天的钝角很想回学校:感觉很强啊
点赞 评论 收藏
分享
评论
5
104
分享

创作者周榜

更多
牛客网
牛客企业服务