前言
本次分享的内容主要是小米安卓面经复盘,想着都已经四月了,会不会太晚了,可能泡池子了,没想到还是捞到了一次面试机会,大家可以自行对照看一下。
话不多说,上面试题
1、不用自我介绍 先聊了一下岗位 不要紧张当普通聊天 面试就是找你的优点(小米面试官素质确实顶) 主要问一些基础
2、进程和线程的区别 线程调度算法 引导想一下设计线程调度要注意哪些东西 (脑抽只说了优先级 设置亲和性 IO密集计算密集 忘了说线程同步和锁的问题)
3、计算机为什么会有硬盘 内存 L1 L2 L3这样的多级缓存(性能 成本取舍 把晶振时钟周期外频内频倍频 主板布线 锁存器触发器 sram dram说了一遍)
4、平时用什么语言 对C/C++有了解吗 static关键字在C/C++和Java中是用来干啥的 和不用static的变量有什么区别
5、Java和C++的区别(运行机制 性能 库生态 GC)
6、对JVM GC方法有了解吗(只说了下引用计数 可达性分析)
7、数组和链表的区别 查找时间复杂度 分别适用什么场景 栈和队列的区别 不考虑时间复杂度情况下可以用栈去实现队列/队列实现栈吗
8、计网 TCP和UDP区别 使用场景 TCP首部有哪些字段(未答全)
9、一次HTTPS访问网页 经过了哪些协议 说的越多越好 (ARP IP(不同网段路由 同一网段Ethernet/PPP) TCP/UDP DNS递归/迭代 HTTP HTTPS)
10、对Linux了解吗 常见命令 ls cd 怎么返回上级目录 返回上上级目录 进入下级目录
11、谈一个最体现你能力的项目(分散传输模拟BT) 说下你的协议具体怎么实现的 如果你的文件块里面有一个字节不一样怎么办(md5 哈希等摘要算法校验)
12、看你做了一个安卓项目 平常用什么安卓IDE
13、手撕 查找最优解 有一个整型数组,数组元素不重复,数组元素升序,给定一个任意目标值,找出不大于目标值的最大值,若给定元素小于最小值,则输出最小值。说一下你的思路(基于二分查找修改)
14、反问 工作内容(统招统分) 时间965(加班另算) 会被分配到新能源车吗(一般不会 偏手机 可以考虑转岗) 写java还是kotlin(到时候再学 反正你学的快) 对移动端鸿蒙iOS安卓的看法(只要你逻辑思维够硬都一样)
写在最后
多家面试总结下来,考察的范围都很广,包括基础知识、项目。
基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。
项目,大厂比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。
然后就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做题,所以在面试之前要对各种常见面试题了解,有时间的话多去刷刷题找感觉。
面试题笔记分享
为了助力朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,本文给大家整了一套涵盖Android所有技术栈的快速学习方法和笔记。目前已经收到了七八个网友的反馈,说是面试问到了很多这里面的知识点。
每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。