【阿里巴巴】客户端岗-安卓暑期实习
春招快结束了,眼看大家也都收到了自己满意的 Offer,本 Android 渣渣(双非本科)也很幸运在前几天(PS: 面试周期长,等得要哭)收到了阿里手淘无线事业部的意向书,按照惯例分享一下自己的面试经历,希望能够后来的同学一点帮助。
3.10 19:00 一面 40分钟
- 实习时间和地点意向,介绍部门
- 面试官已经看过简历、博客、Github,夸奖了一番,什么时候学习的安卓?
- 谈谈项目经验的两个项目,引申到 HTTP 和 TCP
- 较详细叙述 TCP 的三次握手,及其网络体系下的关系
- HTTP 协议报文格式、常见的请求头(长连接、缓存)、模型、HTTPS
- 聊了简历中提到的 Github 开源库,问到编码格式设计
- 问到简历中的一个 Web 小应用,通信协议
- Retrofit、ButterKnife、Dagger 框架的原理及实现,谈到 APT 注解处理器
- APT 下对 Apk 包体积的影响,进而提到 65536 方法数问题
- 热补丁、热修复,谈了两种方案,提到 Java 类加载机制
- 一般如何学习的?关注点?最近关注到的新框架?
- Handler 消息机制,ThreadLocal 底层结构
- 设计模式(Template 模式、Builder 模式)概念、场景及应用
- 其他同事会再电话联系,让好好准备,自己强行提到刚刚没答好问题的答案
3.23 10:00 二面 30分钟
- 介绍项目经验的两个项目,提到数据量、测试数据等较尴尬的问题
- Socket 在项目中应用、异常处理,问到不太了解的 I/O 模型,转移到 TCP
- 谈了 TCP 的三次握手和四次挥手(过程及设计原因),问到拥塞控制
- 回到项目本身,提到手机中的传感器调用,以及注意事项
- Github 开源项目的介绍(问到做了什么、遇到的问题、优化了哪些)
- 平时对 APP 的优化,答了对内存泄露的优化
- 简历上的一个小应用(功能、三方库的使用),继续提到三方库原理
- 自己做的东西特点在哪里,平时学习所在的实验室性质
- 以后工作的方向,想在哪个方向(物联网或安卓)探索
4.13 21:00 交叉面 20分钟
- Android 整体的框架体系(四层),很宽泛的问题,简单讲了讲
- Handler 消息机制、事件分发、View 绘制三大点都简要谈了谈
- 客户端与服务端通信的协议有哪些?
- 谈到 RPC,对 Android 底层的 Binder 的理解
- 有什么想问的?问了当前状态,以及对发展方向的建议
4.17 20:00 交叉面 20分钟
- 自我介绍(让主要介绍自己在安卓方面的技能)
- 介绍简历中的一个项目(问了数据格式、存储表结构、蓝牙通信的问题)
- 比较深入哪些安卓的技术?谈到写的几个 Github 开源库
- 平时所用的一些框架的优势,简要提了原理
- 自己对反射的理解(动态性、破坏封装、性能缺陷),提到 APT
- Android 内存模型(不太清楚,讲的是 Java 的内存模型)
- 安卓最新系统的特性(讲了最近 4.0-7.0 几个版本的新特性)
- 有什么想问我?问了对自己的评价
4.28 09:00 HR面 40分钟
- 你对过去几次面试自我感觉如何?自认为有哪些不足?
- 一直聊了许多大学以来的学习、生活经历
- 问了自己对学习生活的态度、观点、动力等等
- 询问自己春招的结果
- 有什么想问的?