阿里客户端Android方向校招面经
因为都是电话面试,所以没有手撕代码的环节,但是问了很多应用场景的问题。
一面:
- 自我介绍
- 秒杀项目(smali代码有没有看、tcp三次握手、https流程、单向认证和双向认证、SSL、token、服务器如何校验数据被篡改,这种机制叫什么(身份验证?))
- activity启动模式
- 数据结构中hashmap结构、原理、是不是线程安全
- 如何实现线程安全,内存模型
- 锁在内存中如何使用,CAS是什么
- 如何实现线程1和线程2同时进行,都结束之后执行线程3(countLowndown,notify,线程池)
- 进程间通信的方式
- content provider原理,如何获取URI,(manifest中的exproted,默认情况是false还是true)
- Android卡顿原因,如何造成,ANR
- 算法:翻转字符串成work am I
- 10G文件如何下载(如何保证传输正确(tcp+校验和),分多线程下载,)
- 操作系统中分页和分段、逻辑地址如何转换为物理地址
- 研究生学过哪些课程
- 自我介绍
- 项目
- 有没有公司实习经历
- 排序算法有哪些?冒泡和快排的时间复杂度和稳定性
- 七层模型?路由器在哪一层?
- http和https区别、状态响应码有哪些代表什么
- APP和activity的启动流程
- 使用场景:客户端和服务器的延迟问题,如何防止多扣款?那订单编号在哪里生成?如果在服务端生成的话如何保证不会生成多个订单编号。
- 自我介绍
- 项目介绍,各种问,哪些是自己做的
- UI渲染
- 多线程方式
- asynctask不同机型的线程池大小是多少
- 如何判断一个广告被看见
- 为什么做Android
- 职业规划