2017年秋季校招面经
2017校招面经2016-11-10
好久没有写博客了,这篇文章本应该在国庆期间发表的,十月份一直要写开题报告,拖到现在。这篇文章记录的是2017年8月中旬至9月下旬期间博主参加的校招,记录下来给需要的人看。另外,在准备校招前期,博主将校招复习笔记整理成了电子档,下一篇文章我会把它发布出来,希望能帮助到大家。
注意:本人记忆力确实不太好,很多问题都忘记了,只能挑记住的记录下来,希望大家能谅解
二面是一个中年男人,一开始很严肃,聊了几句后它就笑嘻嘻了。
二面大概30分钟左右,后面说我的性格测试没通过,让我重新再做一次。然而,第二次性格测试还是没通过,最终我还是因为性格测试没通过的原因,与华为无缘。。。。
1.自我介绍
2.跟我提简历里面的项目,如何实现的?具体原理?如果出现XXX情况,会不会出现XXX问题?
3.Android 消息机制,Looper、消息队列等
4.Android事件分发机制
5.自定义过View吗?回答有自定义过,然后谈了下(普通View)onMeasure、onDraw。针对ViewGroup谈了下onLayout,然后还有就是需要注意onDraw不要做过于耗时的任务,防止卡顿。
6.Java中的多线程:Thread、Runnable
7.Java中的同步问题?Lock、Synchronized
8.类的加载过程?五步
9.TCP与UDP区别
10.10万个整数中找出排序后的前10个数(Top N 问题),及其对应算法复杂度
11.10万个整数中,每个整数取值[0,99],找出排序后的中间位置的数(中位数)
12.堆排序的算法复杂度
13.面试官说,大概就这些了。紧接着想要挂电话的样子,我赶紧说,我可以问您几个问题吗?面试官说当然可以。我就问了以我当前的水平能否符合您们的要求?面试官说我觉得你还不错。紧接着问了一下大概等多久才能进入下一场面试,面试官说会尽快安排,可能会再周末。
面试官非常nice,整个过程很挺顺利。
1.针对项目询问
2.TCP拥塞机制
3.手写代码,针对Top k问题
4.如何做到多个线程访问同一个数组,既要线程安全,同时提高读写效率(我是通过分段锁的思想,说了一下自己的想法),后面还让我手写代码实现。
5.还有很多内容,忘记了。。。
三面面试官据说是总监,反正我是被打压的抬不起头。不得不说,总监级的人物技术确实牛逼。首先看了我的简历,然后说简历里面的项目经验太简单了。。。。
1.什么是内存对齐?
2.C++内存分为几种类型?(我对C++不熟,就说了JVM中的内存分类)
3.如何压缩一篇文章?
4.java类加载过程?(这个我很熟,里面滔滔不绝,然而,得到的回应是:背的倒是挺熟)
5.Java那些类是final?(除了String,我真的不知道还有哪些),只回答了String,面试官说,还有呢?(回答不出来了。。。)后面查了下,其实Math类也是final,面试官说日期类有很多,但是我回头查了下,还是没查到哪个日期类是final。
6.快结束时,面试官说,就到这里吧,你很幸运,我没有让你现场手写代码。因为我当时觉得这次面试面的很差,我就回答,我愿意尝试手写代码。然后面试官出了2道题:如何逆转字符串?如何实现“ I am Student”转为“Student am I”?两道题都很简单,剑指offer里面都有。我一听到这个问题心里就呵呵一笑了,立马说出如何实现。然后,面试官说行,就到这了。
虽然炮轰式的提问,但是我的记忆力确实很差。。。目前只记得这些。。。后面想到再补充。二面完了之后,我觉得直接都挂了,因为好多跟C++相关问题我都回答不出来(毕竟我只搞Java 、Android),在面试官面前,自己确实很菜。
1.家在哪?
2.本科是哪个学校?
3.有没有亲戚在腾讯?
4.有没有女朋友?
5.你来深圳了,女朋友怎么办?(回答跟我一起来)
6.你实习过吗?回答实验室不允许我们实习,然后HR说,那相比那些实习过的人,你的优势是什么?
7.你有什么问题问我吗?
2016-08-25,今天下午2:00开始,到4:30,一共面了3面:一面、二面、HR面。不得不说,360办事效率真的很高,觉得你OK,就立马给你安排下一面。360整体感觉比较偏向询问项目中的问题,所以有好的项目经验比较重要。
其实之前有整理一面的问题,但是是写在纸上,然后那张纸被我一不小心当垃圾扔了。。。。所以现在回想的起来的问题很少。。。
记性真的很差。。。想不起来了。。。总之,一面一般问的比较基础,大部分人都能通过。
先是自我介绍。大致介绍了一些后,居然发现不知道该说什么了。有点尴尬!HR姐姐就一直看着我。。。实在看不下去了,就说,那你介绍下你做的项目吧~。
后面得到通知,成功称为360的备胎。。。。
吐个槽,原本安排5:20开始面的,想着那么晚,提前过去看看能不能提前面试。从2:30就赶过去,结果直到6点才轮到我。硬是坐了一下午!
二面的面试官基本没有准备问题,都是拿着简历对着问,所以不同人的简历可能问的差别很大。
网易最后还是跪了,主要是二面没面好。二面面试官从我刚进门就没有给好脸色,聊不到一块去,后面我回答问题时,面试官没有正眼看过我。所以找工作这件事,运气也很重要,遇到聊得来的面试官,一切都好办。
========================================
以下为11月9日更新,记得比较含糊
========================================
一开始一面面试官没正眼看我一眼,瞬间我就觉得,糟了,这肯定要跪了!刚开始问了几个简单的问题,我回答了后,他依然没有重视我。然后他就让我说说binder机制,我把《简单明了,彻底地理解Binder》 这篇文章跟面试官说了一遍,瞬间面试官眼睛亮了!他突然好激动,他说,今天我面了一天了,你是我面的最好的。然后立马加了我微信。后面面试官说,二面你不用面了,直接去综面。
因为一面面试官说二面免了,所以直接去综面了。
综面面试官没有问android相关问题,就是一直问算法、考算法。算法题目我忘记了,大致记得就是一个数组,只有2个数是相同的,其他各个数是不同的,找出这个相同的数,并且要求时间复杂度和空间复杂度都是O(n)。还有其他算法题,记不住了。
相隔时间比较久,记忆的内容也不多,乐视一面面的挺久,大概1个小时。跟面试官讨论的主要问题是Binder跨进程问题,其实也就是我把我写的《简单明了,彻底地理解Binder》 这篇文章跟面试官说了一遍。然后再一起讨论设计模式什么的,当然了,面试内容也不仅仅这点,大部分问题跟前面重复,具体我也想不起来了。
二面面试官是负责乐视的基于webkit浏览器开发。能记下的内容不多,我记得的问题有:你觉得浏览器难点在那?然后还有就是问了一下项目相关的问题。最后给了个智力题:在平面上画线,最多能将屏幕划分为多少个区域,比如一条直线能将平面分为2个区域,2条直线最多分为4个区域,那么n条直线最多分为多少区域?
乐视后面还给我加面了,专门打电话让我去加面。加面的面试官居然不知道我是加面的,以为我是来二面,我特意提醒了下后,他才知道。后面简单聊了下后,就让我回去了。很遗憾,虽然加面了,我最终拿到的乐视薪资依然是白菜价。
涂鸦是全程算法题。
二面也就几个算法题,不说了。记不住。
虽然好多问题我都忘记了,但是其实各个公司面试官问的android基础问题就那些。二面基本上都是问项目,所以建议大家一定要准备好项目,要不然二面就很难通过。另外有些二面面试官喜欢问算法,问智力题。大部分二面面试官不会问android基础。最后,我后面会把我准备校招期间的所有笔记公开给大家,敬请期待!