9d00fbb207a6596a3379aee1fec91a31
2017 阿里、百度、美团、京东、今日头条、华为等秋季校招 Android 面经

秋招季开始走进尾声了,各互联网大厂差不多都陆续地结束了校招,前几天接到了美团大大的口头offer,很喜欢美团的技术氛围,也不想再折腾了,决定签三方了。回顾一下人生第一次找工作的经历,说不定会对学弟学妹有帮助。

211渣本,软件工程专业算是科班出身,在学校教授实验室做过项目,暑期在华为实习,这次秋招面的所有公司岗位都是Android岗,以上算是背景介绍了。秋招投了很多公司:阿里、百度、美团、京东、今日头条……总结一下,不要吝惜自己的简历,多投!每多投一份简历,就多一次机会。要说投简历有没有什么技巧?还真的有,这个放到文末说。

先总结一下秋招简历状态:

  • 笔试挂的:
    • 今日头条
    • 携程
    • 滴滴
  • 面试中挂掉:
    • 百度
    • 京东
  • 仍在流程中
    • 阿里
    • 苏宁
    • 中兴
  • 已经拿到offer的:
    • 华为
    • 美团

不能面面俱到,打算详细记录一下百度阿里美团的面试经历,其余的这里集中吐槽。

吐槽区:

  • 今日头条的技术岗薪资历年都比其他互联网公司高,理所当然的门槛也很高。头条很看中算法功底,据我了解我身边做技术的朋友,无论投的什么岗,就会考算法,所以如果想拿头条的高薪,迎娶白富美,一跃成为人生赢家,一定要平时多在算法方面下功夫(膜拜大佬)
  • 携程挂在了性格测试(一脸蒙蔽…)
  • 京东面试感觉有点水有点玄学,一面和二面的面试官都问的比较粗,通过有点靠脸缘,但不得不说的是今年京东给开的薪资标准很高很诱人
  • 苏宁有点无力吐槽,8月中旬就发了面试通知(内推提前批),现在都还没有真正组织面试,本来都以为简历被埋了,9月份又收到短信说别着急,正在安排(二脸蒙蔽…)于是安排到现在都还没有
  • 中兴是之前参加比赛拿到了直通终面的绿卡,比赛结束后不久有面试官给我打电话聊过,现在官网的状态是等待终面,因为不想去中兴,所以就没太关注
  • 华为,我暑假在华为实习,不具体说在哪个部门了,想说的是一直以来华为作为雇主在大家心中的形象不是很正面,作为实习生在华为工作这三个月我有必要出来替华为说句话:我看到的华为的确是一个有能量的公司,对员工的福利待遇很不错,实习生是导师一对一带着的,我师傅是从其他公司挖来的18级专家,工作生活方方面面帮了我很多,给我提了很多有用的建议,都是他走过的弯路让我免得也踩进相同的坑里。在华为不会有人会因为是实习生就冷落你,同事关系很融洽,我觉得应届生如果能来华为发展是个很不错的平台,有许多机会。被大家诟病的加班问题:据说有人会睡在公司,至少我在这段时间所在的部门并没有这种现象,周二、周四会有培训到晚上8,9点钟。对于一些做交付的部门到了交付期限可能需要加班加点,但似乎大多数互联网公司也是这样。说到这有人会说,说了这么多那你还签了美团?(摊手)因为我是做Android应用开发的,而华为终端CBG可以理解是一个终端设备厂商,对应用开发的需求不多,而美团作为国内的互联网大厂,Java的技术深度不必多说,所以才会选择签下美团。

好了吐槽就这些,面经奉上:

百度(一面挂,50分钟)

一面
  • 自我介绍,问了问实习期间做了什么内容,聊了聊简历上写的项目
  • 了解Http吗,说说TCP三次握手四次挥手
  • 为什么有三次握手,不是四次,或者两次
  • Http头部有哪些,用过哪些
  • Java看过源码吗,说说Collection的常用子接口和实现类,说说ArrayList和LinkedList区别
  • AysncTask用过吗,各个函数分别在什么线程回调的
  • 在子线程里怎么操作UI更新
  • 介绍一下Handler工作原理
  • 除了主线程之外其他的都要调用Looper.perpare()吗
  • 用过Fragment吗,说一下Fragment和Activity的生命周期之间的关系
  • 说一下Service的生命周期,用过IntentService吗有什么区别
  • 如何判断单链表有环,如何判断环的位置
  • 手写二分查找
  • 手写伪代码:给两个栈,要求实现队列
面试回顾:

我是通过内推拿到的面试机会,部门是手机百度,面试官人不错,看我很紧张,面试开始时候先聊了会天才开始正式面试,但是仍然答的一塌糊涂,面试官进去和二面面试官商量之后出来很遗憾地告诉我没有通过,可以再投正常批次的。

现在回头看看其实面试问题并不难,如果放在后面面试能走得更远,起码能进二面。总结一下百度很在乎基础知识和编码能力,会抓住一个点往下问,可能是考虑我是个本科生没有问得特别深入;注重解决问题的思路和编码能力,两道手写题都是先讲思路,再写代码。写好之后会一起讨论边界情况,让我说的比较多,会让自己写几个测试用例,主要还是看面试者的思路。

阿里(三面完成,四面预约后没有接到电话,状态面试中)

一面(80分钟)
  • 聊简历,问了很多围绕简历展开的问题
  • 对Java的常用容器熟悉吗?知道Vector吗?说一下Hashmap和HashTable的区别
  • 解释一下线程和进程之间的关系,做过多线程吗?在什么场景下应用
  • 怎么保证线程同步
  • Synchronize关键字的作用范围,volatile关键字的作用
  • 了解死锁吗?
  • 回到HashTable上,HashTable怎么保证线程同步,有没有更高效的可以保证线程同步的map,用过吗
  • Hashmap看过源码吗?了解底层实现吗?Hashmap怎么解决哈希冲突的问题?对Java8的改动有关注吗?了解Java8中对Hashmap有什么优化吗
  • TCP三次握手过程?是哪一层协议?说一下OSI七层模型
  • 说一下TCP和UDP的区别,知道分别有什么应用场景吗
  • 在无序数组中找到两个值x,y使x+y=z(z是已知值)(我给出的方法是基于排序的)。有方法可以不排序吗?
  • Activity的生命周期了解吗?
  • 对Activity的四种启动模式了解吗?
  • 了解Android多进程开发吗?有什么应用?做过多进程开发吗?
  • 进程之间有哪些通讯方式
  • 说一下Binder
  • ListView怎么做优化
  • 自定义View有哪些关键函数?分别有什么用?自己开发过程中用过自定义View吗
  • 有什么想要了解的吗
二面(40分钟,二面是一个做后台的boss把我的简历捞起来的,没经验所以不想做后台聊的少)
  • 看过Java什么源码
  • 说一说你看过的内容
  • 了解JVM的类加载吗
  • 垃圾回收算法了解吗
  • Java中的软引用,弱引用……
  • 最近在看什么书
  • 说说你了解的设计模式(开始疯狂聊设计模式,但是我是真不懂,只能想到什么说什么)
三面(50分钟)
  • Activity的生命周期,需要保存当前视图的状态应该怎么做
top Created with Sketch.