一面(60min)
常规问题
- 自我介绍:先介绍现读学校和专业,曾读的学校和专业。最后说选择客户端开发的原因。这样讲完大概就是一分钟左右的自我介绍了。
- 我的项目介绍:因为曾经做的项目用的技术栈在现在看来不是很难,所以盘点时候要讲究温故而知新。先将当时做的时候的学习路线和遇到的难点说出来。然后再从现在的角度说明当时技术栈不是很难的原因,以及如果可以再来一次的话,可以优化哪些部分的内容,体现出自己的学习能力。
- 反问:问岗位业务需要做哪些内容。
基础知识问题
- 与 ListView 对比,RecyclerView 的优点
- RecyclerView 的缓存机制
- final 关键字的作用,final 在多线程并发条件下的作用
- 线程安全
- Map 接口的实现有哪几种,实现的特性是什么
- LinkedHashMap 的实现机制
- synchronized 作用于不同方法和代码块的区别
- 哪些方法可以创建线程池
- BroadcastReceiver 和 LocalBroaccastReceiver 的区别
- 安卓的跨进程通信
- DNS 域名解析过程
- DNS 劫持
- 怎么用 OkHttp 监控数据请求的状态
- 听说 过 MVVM 么
- 触摸事件的传递机制
- Looper 和 Handler 的关系
- Window 机制中的 DecorView 的关系
二面(45min)
常规问题
- 自我介绍
- 项目问题
- 反问(最后的反问:这个岗位需要学习哪些方面的内容)
基础知识问题
- DNS 解析过程
- DNS 协议的可靠性的设计
- DNS 协议改进方式
- TCP 的拥塞控制机制
- HTTP 和 HTTPS 的区别
- HTTPS 怎么保证安全性的,具体的流程是什么样的
- 对称加密和非对称加密的区别
- HTTP 的版本差异
- 进程和线程的区别
- 一个应用里面有多个进程么?回答 “可以” 了以后,继续问:在什么情况下需要一个应用里面有多个进程
- 在 Linux 系统下,有哪些进程调度的方式
- 跨进程通信的方式
- 信号量怎么理解
- 操作系统层面,怎么实现异常中断
应用场景题
设计一个小框架,实现加载一个图片库,实现的功能是:如果在内存中有图片,就先从内存中取;如果没有的话,先查询磁盘,如果磁盘有的话就从磁盘中取;如果磁盘没有的话,再查询硬盘,如果硬盘中有的话,就从硬盘中取;如果都没有的话,就从远程网络中取。如果图片较大的话,要做一些限制。如何去设计和考虑,要着重关注下内存的缓存和控制。
HR面(40min)
2 - 3min 的自我介绍,尽可能详细一些
- 你为什么不选择产品经理,是觉得这个工作没有价值么
- 你对自己的职业规划
- 你有哪些 offer
- 你对工作有什么要求
- 你更关注哪些方面
- 简单评价下自己,优势和不足
- 求学期间,坚持最久的事情,除了兴趣爱好以外
- 你遇到过最难的事情是什么
- 你觉得你做的这些东西,最有价值的是什么
- 最有成就感的事情
- 兴趣爱好
- 爱豆是谁
- 云音乐等级多少
反问:
#网易云音乐##Android##客户端##面经##网易#