小米-安卓-面经复盘
时间: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了 当练手了
最该投早点的一集
#24秋招求职节奏总结##24届软开秋招面试经验大赏##我的失利项目复盘##我发现了面试通关密码##软件开发2024笔面经#