小米-安卓/HyperOS开发-面经复盘
时间:1月 1月份还在秋招还是头次见 当初投太晚了
一面 1h10min
- 不用自我介绍 先聊了一下岗位 不要紧张当普通聊天 面试就是找你的优点(小米面试官素质确实顶,面试体验绝对是一流的) 主要问一些基础
- 进程和线程的区别 线程调度算法 引导想一下设计线程调度要注意哪些东西 (脑抽只说了优先级 设置亲和性 IO密集计算密集 忘了说线程同步和锁的问题)
- 计算机为什么会有硬盘 内存 L1 L2 L3这样的多级缓存(性能 成本取舍 把晶振时钟周期外频内频倍频 主板布线 锁存器触发器 sram dram说了一遍)
- 平时用什么语言 对C/C++有了解吗 static关键字在C/C++和Java中是用来干啥的 和不用static的变量有什么区别
- Java和C++的区别(运行机制 性能 库生态 GC)
- 对JVM GC方法有了解吗 展开说说(只说了下引用计数 可达性分析 吟唱八股)
- 数组和链表的区别 查找时间复杂度 分别适用什么场景 栈和队列的区别 不考虑时间复杂度情况下可以用栈去实现队列/队列实现栈吗
- 计网 TCP和UDP区别 使用场景 TCP首部有哪些字段
- 一次HTTPS访问网页 经过了哪些协议 说的越多越好 (ARP IP(不同网段路由 同一网段Ethernet/PPP) TCP/UDP DNS递归/迭代 HTTP HTTPS)
- 对Linux了解吗 常见命令 ls cd 怎么返回上级目录 返回上上级目录 进入下级目录
- 谈一个最体现你能力的项目(分散传输模拟BT协议) 说下你的协议具体怎么实现的 如果你的文件块里面有一个字节不一样怎么办(md5 哈希等摘要算法校验)
- 看你做了一个安卓项目 平常用什么安卓IDE
- 手撕 查找最优解 有一个整型数组,数组元素不重复,数组元素升序,给定一个任意目标值,找出不大于目标值的最大值,若给定元素小于最小值,则输出最小值。说一下你的思路(基于二分查找修改)
- 你之前有面试其他公司吗 有offer吗 什么行业的
- 反问 工作内容(统招统分) 时间965(加班另算) 会被分配到新能源车吗(一般不会 偏手机 可以考虑转岗) 写java还是kotlin(到时候再学 反正你学的快) 对移动端鸿蒙iOS安卓的看法(只要你逻辑思维够硬都一样)
二面 1h
- 对做安卓java方向没问题吗 哪里人
- 你的项目来源 选一个你觉得最深刻的最有技术含量的 说流程
- 文件为什么要切片 应该是要用多线程请求对吗 你是用什么工具或者代码切的
- 你说的序列化是什么意思解释一下 你的元数据放在哪 是单独放在一个地方的吗 底层是TCP为什么会传输失败(不知道) 你创建socket的数据类型是什么
- 你选udp还是tcp的时候是怎么分别创建socket的 功能模块划分
- 有没有实习过 Git和SVN用过吗
- 平时用什么语言 为什么做BT协议用了C++
- 看你一面问了不少基础知识了 对多线程编程用得多吗 碰到过问题吗(资源竞争线程同步) 怎么解决这个问题 资源的共享怎么做 比如说有一个队列 有两个线程一个往里面写一个读(synchronized/lock/阻塞队列)
- C语言我在头文件里面定义一个int a=1 写一个文件1.c包含头文件 把变量赋值为2打印出来 再写一个2.c包含头文件 直接打印变量 这两个文件分别编译出来 分别运行两个程序 分别打印什么(答得有点混乱,引导下回答完)
- 说一下对C语言全局变量和局部变量的理解
- 手撕 判断回文串 如果不是回文串就补成最短回文
- 反问 用的语言(还是java多一点,有少量jni,主要在播放器那块) kotlin和java(占比差不多) 工作时间(上午9点半之前到 下午6点半 加班一般到8点左右) 总部是在北京吗 加班和工资是不是高一点(北京的肯定高点)
总结
聊挺顺 疑似投太晚被kpi了 当练手了
最该投早点的一集
--------------------------------------------------------------------------------------------------------------------------------------
打复活赛
时间:3月 春招直接开启二战 转入OS研发
一面 53min
- 自我介绍 先闲聊一下 几月毕业 实习有吗 主要用什么语言
- java==和equals区别 final关键字一般用在哪 普通类和抽象类有什么区别
- 线程run和start有什么区别 用过什么数据库 mysql表设计的时候有什么特性 数据库使用中出现过什么异常吗
- 并发写数据 锁 rabbitmq这种消息队列有使用吗
- 项目来源 python用得多吗 用在什么场景下 git svn这些是什么场景下用的
- 你对安卓有哪方面了解
- Handler和HandlerThread有什么区别 安卓广播有用过吗 setContentView的作用 涉及到编译相关的你是怎么打包apk的 编写完代码你怎么运行的验证的 有签名吗
- 手撕 找到一个字符串中出现次数最多的字符
- 反问 作息时间(早上9点到9点半弹性 晚上七八点 忙一点八九点) 负责什么业务
二面 28min
- 介绍一下你当前的学习和做的课题的情况
- 看一下你这边写了这么多项目 你挑一两个深入介绍下
- 这是一个什么样的项目 是你自己构思的需求还是有什么背景 你在设计你的数据库时考虑了哪些东西
- 你从数据库读出来以后用Intent是干吗(多Activity传数据到页面上) 是不是你在一个Activity里面读出Bitmap传到另一个Activity去显示
- 你没有在显示的Activity里面自己直接读数据库是出于什么样的考虑
- 你用的java还是kotlin(java) qt的项目是c++对吧 用了很多网络通信相关的东西对吧(顺着讲了当时怎么设计协议的)
- 如果现在让你重新做一个这样的通信协议你会使用什么
- 有考虑过快进快退的场景吗 现在如果想要做出来一个功能完善的C/S播放器你会怎么设计 时间跳转你会怎么做
- 笔试环节你参加过吗 一月份你参加过一次面试对吗 当时写过一些代码对吧(前两天也写了) 看你之前表现不错,这次就不用手撕了
- 介绍部门 岗位
- 对于这个岗位我觉得需要非常广的技能 我觉得你了解的广度还是很不错的
- 反问 平时工作中用到东西 大概的作息(官方说法是早上九点半之前 加上中午的午休时间 在公司时间在9h左右)
HR面 10min
- 在学校的学习情况是怎样的
- 奖学金和竞赛的相关情况 奖学金是校级吗 竞赛涉及到哪些 最高获得过省级以上吗(一两个国奖)
- 有论文和专利吗
- 有没有实习和科研项目相关的经历吗(有校内实训和科研 各种项目有很多)
- 项目相关情况(介绍项目总体涉及领域)
- 手里有其它的offer吗 薪资情况 有没有其他面试
- 整体你感觉这边业务方向和公司情况满意吗
- 假设我们给了offer期望薪资怎么考虑 你还有什么顾虑吗
OC
总结
运气占一半,果然想要你的话一般不会给你出难题拷打
#24秋招求职节奏总结##24届软开秋招面试经验大赏##我发现了面试通关密码##软件开发2024笔面经##春招#