楼主21届秋招面试过快手、美团点评、百度、网易有道,最后上岸抖音Android客户端(base北京)。面试期间在牛客看了大量面经,面试时也有意记录下了面试题集。近期正值校招开启,特地整理出来回馈牛友~
【先说结论】
- 一定不要在还没有把握的时候就去面试你最心仪的公司,应该先试试其他公司,积累经验,认真复盘总结,查漏补缺,面试经历宝贵,请好好利用!
- 楼主去年秋招期间也参加过一些笔试,基本上5道编程里能做出2道就能进面试,认真刷题就还行。
楼主的目标岗位是Android客户端研发,但其实本身并不会Android,只会Java(大厂JD上基本都写着接受客户端零基础)。
一、抖音
先说这个上岸了的,投递的岗位是Android客户端开发工程师,三轮技术面。
面试回顾
三次面试都是持续一小时,基本分为:【自我介绍】【技术问答】【算法考察】三个部分。面试官提问题是围绕求职者来的,你简历上写什么,就着重问什么,听得特别认真,让面试者感受到尊重。技术考察时不是泛泛问,你回答时提了什么,就往那个点展开提问,整体感觉是更注重校招生的学习能力和发展潜力。而且面试官都超级nice,温柔耐心,我答不出来的他们还会引导我思考,像个师长,不像面试官。
一面
自我介绍2分钟
介绍简历上的项目
项目是安卓相关的,让我讲项目中用到的知识的原理
知道多少安卓的东西?我说粗浅了解,比如四大组件,Activity生命周期。于是让我说生命周期都调用了哪些方法
Android四大组件为什么被称为四大组件?有什么共性
Android进程回收优先级
知道设计模式吗,讲一下
我讲了单例模式、桥接模式代理模式知道吗,讲讲
我讲了静态代理,面试官又说还有个动态代理,能说说吗
于是我把两者的区别和动态代理怎么调用的说了一下,感觉面试官是满意的算法题,整数数组最大子串求和
Java的类加载过程
我回答时说类加载用了双亲委派机制为什么要用双亲委派
类加载器有哪些
这些类加载器的父子关系
自己平常写的类是用哪个类加载器加载的
Bootstrap加载器也是加载器,它的父加载器是哪个?
Java中常见的线程安全工具有哪些
除了Java,你还会什么编程语言
我说C、C++,python、js、php这些都用过,但不算熟练那你觉得C++和Java有什么区别
二面
自我介绍
面试官插播闲聊:你和内推人认识吗,怎么认识的?什么时候的网友啊,面基过吗,你家在南边,干嘛来北京啊,被她忽悠来的啊哈哈!(在这个过程中我放松了不少,紧张情绪退散!)介绍项目
Java中接口和抽象类的区别
final关键字的使用
刚才你说到了重写,还有一个概念叫重载,这两者有什么区别
写一下单例模式
懒汉式单例中使用双锁模式这个考太多了,我直接写了这个,让面试官有继续抛问题的机会。果然他先是问了为什么要双锁,再问了为什么要用volatile关键字修饰单例变量。你刚才说了volatile关键字,那现在来聊一下这个关键字
由这个关键字又展开了对Java多线程的各种问题
说一下死锁的概念,构造一个死锁的场景
进程通信方式有哪些
我提到了管道,于是又问了命名管道、匿名管道
计算机网络学的怎么样,说说http和https的区别
你说https是加密的,用了哪些加密方式
为什么要使用不同的加密方式
算法题:计算岛屿个数
三面
自我介绍
介绍项目
针对项目问了我很多问题,问得比前两面的都细致,特别喜欢问我对原理的理解
由项目引申问了Android中的通信机制,问了handler
项目中遇到什么比较大的困难,你是怎么解决的
Java的Map
如果在多线程场景下hashMap会有什么问题吗
Java有什么容器是线程安全的吗
你刚才说的那些容器是怎么实现线程安全的
JVM中的GC Roots 是什么
Java中的四大引用是什么,为什么有这四种不同的引用,知道应用场景吗
我在回答时提到了内存泄漏,于是下一问就被问内存泄漏说一下内存泄漏
怎么防止内存泄漏
写代码:循环遍历List删除指定元素
这里我翻车了,写出了异常,好在没有紧张到失智,用另一个方法写出运行正确的代码交了差,最后面试官还很耐心地给我解答报异常的原因。反问环节
我没什么想问的,但是因为上一题代码写错了,我想给自己找补,就把一面时答得不好的问题重新说了一下。这里也有小心机在的,咱们要主动提及自己熟练掌握的东西,包括面试时也应主动把话题引到自己擅长的地方。
再过几天就拿到offer啦!
百日心心念念,一朝得偿所愿,恍然如梦。然而下一秒就是想抽自己几个大耳刮子——我要是早这样努力,至于当几年学渣?!那么我是怎么努力准备秋招的呢,想看的可以评论留言哦,需求多我就分享一下~
时间线:
2020.10.20 投递简历
2020.11.9 一面
2020.11.13 二面
2020.11.16 三面
2020.11.20 发offer
二、快手
9月5号,客户端开发工程师
这是我第一次面试,超级紧张,节奏掌握不好,而且当时才九月初,我连Java都没学扎实,光速挂了。
【教训:掌握好时间,别啰嗦】
- 自我介绍
- 最近最得意的项目简介
本来人家只给我5分钟,我叭叭叭了18分钟 = =。
现在我和你建立连接用的是什么协议
为什么用无连接的
你在浏览器上输入一个网址,按下回车后,都会用到哪些协议
我事无巨细都说了,详略不得当,面试官叫我简略点说一下https的ssl过程
还有其他技术问题,忘记了
算法题:三数之和
没写过,完全不会,写出来的只能过30%用例,面试官一直让我多想想,到最后我内心疯狂呐喊我要放弃!!
面试官挺年轻的,面试过程中不给人压迫感,还安慰我别紧张,就是聊聊。
三、美团点评
9月9号,Android开发工程师,也是一面挂
【教训:当场写生题的成功率在我这里为0,要想过关,唯手熟尔~】
对这场面试记忆不深刻,因为没被问Java、安卓、计算机网络之类的,面试官看我学过安全,就问我栈溢出、UAF之类的问题,还有C语言的问题。
算法:第n大的数
我当时觉得挺简单的,先快速排序一下再取结果咯,复杂度也不算高。然后麻溜儿地写出了一段搞反顺序的代码,“光荣”地挂了。
四、百度
9月12号,移动端软件开发
一面55min,当场告知我等下二面,二面38min,挂
这回有很认真地记录问题并复盘
一面(55min)
- 自我介绍+问项目
- 什么是深拷贝,什么是浅拷贝
- 数组的拷贝是深拷贝还是浅拷贝
- 重载和重写的区别
- 什么场景用重载
- equal和==有什么区别
- tcp三次握手过程
- 为什么要三次握手
- 线程安全如何保证
- 锁机制是怎样的
- 线程通信怎么实现
- 线程之间共享数据的话怎么保证数据安全性
- hashmap的put过程解释一下
- hashmap的哈希函数怎么实现的
- 设计模式知道吗,如果if else很多怎么办
- 算法:实现有重复数字的有序数组的二分查找,输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一
面试官也很耐心,给足我思考的时间。不过我感觉有点像看题库提问,问得比较泛,也没什么规律,没有死揪住一个知识点深挖。
二面 (38min)
- 你有什么优点和缺点
针对我说的优点,提了个场景问题
安卓如何进行消息传递
安卓和js的交互怎么实现的
Activity的生命周期,涉及到什么方法
ActivityA调用ActivityB(原先B没有启动),两者会调用什么方法
如果ActivityB是弹窗或者半透明,ActivityA会调用onStop()吗,为什么
安卓的ANR,怎么检测发生了ANR
(ps:我都说不会安卓了还被连问Android,好崩溃,所以后来我才去了解那些最基础、面试最常考的安卓知识)了解设计模式吗?
写一下单例模式
我倒是能写出来,但是有细节瑕疵,所以还是不熟练啊!为什么你写出来的这个要判断两次if (Instance == null)
说一下https的ssl过程
http2.0和1.0有什么区别
GC ROOT由什么组成
说一下内存泄漏和抖动,开发的时候怎么避免
智力题,烧绳子
二面面试官一看就是经验丰富的技术牛,问问题有层层递进那味儿了,我感觉好厉害。面试官也很耐心,我中间网络不好断过一次,后来就一直有杂音,但是对方一点不耐烦都没有,而且安卓那几个问题我是连续懵逼,他也没表现出不屑啥的。
五、网易有道
9月23日,Android开发工程师,一面挂
- 问了很多我简历中项目相关的问题
- 写个完整的、能正确运行的单例模式case
- 线程通信(感觉面试官好喜欢问通信问题)
面试题我忘得差不多了,只记得Java、计算机基础方面的问题都和上面的面试大同小异,我和面试官聊得还行,不知道为什么挂了。网易的面试官给我的感觉也很nice,让人莫名地感觉公司文化很好。
其实还面了一家也很有名的公司,但是面试体验差,也没有有效问题,就不写了。给大家分享一下连续面试被挂的心态,其实当时我整个人都挺不好的,回顾整个九月里的面试都在被打击,十分沮丧,网易面试的前一天,我都打退堂鼓了,很害怕被消磨自信,还好很快调整了心态。
从心态爆炸到臭不要脸
九月份这几次面试下来,我基本熟悉了面试Android客户端的套路,大概能猜测拿着我简历的面试官会在哪里提出问题,也知道自己欠缺在哪里,于是我决定用一个月时间专心为面试抖音进行学习,不再面其他公司了,毕竟投简历和笔试也很花时间的。
【写在最后】面试是很宝贵的经历,一方面是锻炼自己的面试能力,一方面是感受面试官的风格、水平,毕竟以后是要做同事的人,对方还很可能是你的leader,还是要合得来才行。另外,注意做好记录和复盘~面试被拒绝是很正常的事情!我们应该关注的是面试暴露出自身什么缺陷,而不应该沉浸在情绪里,杜绝玻璃心才是走向成功的开始哦!祝大家拿到心仪的offer~
七、岗位介绍
楼主刚入职一个月+,以后可以更新一下工作日常介绍。总的来说体验很棒,让我感觉之前的努力都是值得的,并且每当想起秋招,都会感谢当初那个坚定不放弃的自己。
说一下我投递的岗位供大家参考,名称叫【客户端开发工程师-抖音/抖音火山版/直播/影像】,职位 ID:8CL2,属于【产品研发和工程架构部】下的智能创作团队,在北京、上海、深圳、杭州,大家在官网上按岗位名称搜索就能看到哈
简单的团队介绍!互娱研发部门,负责抖音、抖音火山版、直播、音乐、影像等多款明星产品的研发,截止2020年8月,抖音连同抖音火山版在内,日活用户超6亿,并继续保持高速增长。加入我们,你会支持包括但不限于上述产品的研发和相关架构工作,每一行代码都能服务亿万用户。
岗位要求我画个重点,完整版见官网:2022届获得本科及以上学历;可接受客户端零基础同学;扎实的数据结构和算法基础,精通至少一门编程语言,包括但不限于:Java、Objective-C、Swift、C、C++...
现在校招还在进行中,如果大家想了解我所在岗位的工作内容等等都可以评论或者私戳我哈,会及时回复滴
全部评论
(18) 回帖