腾讯内推TST(已拿到offer)
一面:
自我介绍
跟我提简历里面的项目,如何实现的?具体原理?如果出现XXX情况,会不会出现XXX问题?
Android 消息机制,Looper、消息队列等
Android事件分发机制
自定义过View吗?回答有自定义过,然后谈了下(普通View)onMeasure、onDraw。针对ViewGroup谈了下onLayout,然后还有就是需要注意onDraw不要做过于耗时的任务,防止卡顿。
Java中的多线程:Thread、Runnable
Java中的同步问题?Lock、Synchronized
类的加载过程?五步
TCP与UDP区别 10.10万个整数中找出排序后的前10个数(Top N 问题),及其对应算法复杂度
10万个整数中,每个整数取值[0,99],找出排序后的中间位置的数(中位数)
堆排序的算法复杂度
面试官说,大概就这些了。紧接着想要挂电话的样子,我赶紧说,我可以问您几个问题吗?面试官说当然可以。我就问了以我当前的水平能否符合您们的要求?面试官说我觉得你还不错。紧接着问了一下大概等多久才能进入下一场面试,面试官说会尽快安排,可能会再周末。
半个月后上午 现场二面
面试官非常nice,整个过程很挺顺利。
针对项目询问
TCP拥塞机制
手写代码,针对Top k问题
如何做到多个线程访问同一个数组,既要线程安全,同时提高读写效率(我是通过分段锁的思想,说了一下自己的想法),后面还让我手写代码实现。
很多内容都忘记了。。。。
下午 现场三面
三面面试官据说是总监,反正我是被打压的抬不起头。不得不说,总监级的人物技术确实牛逼。首先看了我的简历,然后说简历里面的项目经验太简单了。。。。
什么是内存对齐?
C++内存分为几种类型?(我对C++不熟,就说了JVM中的内存分类)
如何压缩一篇文章?
java类加载过程?(这个我很熟,里面滔滔不绝,然而,得到的回应是:背的倒是挺熟)
Java那些类是final?(除了String,我真的不知道还有哪些),只回答了String,面试官说,还有呢?(回答不出来了。。。)后面查了下,其实Math类也是final,面试官说日期类有很多,但是我回头查了下,还是没查到哪个日期类是final。
快结束时,面试官说,就到这里吧,你很幸运,我没有让你现场手写代码。因为我当时觉得这次面试面的很差,我就回答,我愿意尝试手写代码。然后面试官出了2道题:如何逆转字符串?如何实现“ I am Student”转为“Student am I”?两道题都很简单,剑指offer里面都有。我一听到这个问题心里就呵呵一笑了,立马说出如何实现。然后,面试官说行,就到这了。
虽然炮轰式的提问,但是我的记忆力确实很差。。。目前只记得这些。。。后面想到再补充。二面完了之后,我觉得直接都挂了,因为好多跟C++相关问题我都回答不出来(毕竟我只搞Java 、Android),在面试官面前,自己确实很菜。
下午 现场HR面
家在哪?
本科是哪个学校?
有没有亲戚在腾讯?
有没有女朋友?
你来深圳了,女朋友怎么办?(回答跟我一起来)
你实习过吗?回答实验室不允许我们实习,然后HR说,那相比那些实习过的人,你的优势是什么?
你有什么问题问我吗?
想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、redis、jvm、多线程、netty、kafka、的加群:488048032
网易面试:(已拿到offer)
网易大楼是在百度大楼的旁边,感觉还是不错的,来的稍微有点早,在前台等了20分钟左右的样子,面试官就带我去面试了。
笔试:
具体的内容记不太清楚了,都还是比较基本的,大概有以下几个类型:选择题、程序输出题、简答、四道算法:
给定一个int型 n,输出1~n的字符串例如 n = 4 输出“1 2 3 4”;
输出所有的笛卡尔积组合;
单例模式;
最长上升子序列。
都不是很难,基本上都能作出来。
一面:
一面面试官是资深的Android开发工程师,所有的问题问的都很详细,很多细节,面试官都能清晰的说出来,水平很高。
属于循序渐进的提问方式,从简单的知识入手,逐渐深入,直到你回答不出来而且问的都是你自认为很擅长的知识点,可见面试官的功力有多深厚,深深的佩服。
我下面大概说一些问题,面试官最后总能问到很深入的地方:
对刚才做的题,一些错的地方做了讨论,主要是类的加载和内部类方面的知识,尤其一些深入到JVM层的知识的确自己有一些不足,不过大部分都还是能答出来;
双亲委托机制,类的五个加载过程;
java类加载器的加载流程;
Binder机制,从java到framework再到kenral层,面试官问的都很详细,遇到不会的也都会跟我解释;
Serializable和Parcelable的区别;
View的绘制流程,详细到framework代码,讨论到不确定的地方,立马打开电脑和我一起看源码;
事件分发机制;
常用设计模式,使用静态内部类实现单例的原理是什么;
线程同步,CopyOnWriteArrayList怎样实现;
Volley源码,EventBus源码。
面了1个半小时,面试完后就到12点了,跟我说我这关过了基本上就没问题了,面试官还是一个很幽默的人,带我去网易食堂吃了顿饭,这里的饭确实特别好吃,回来后,休息了一会,就开始Leader面了。
二面:
Leader面,我还以为至少要3轮技术面呢,没想到直接就到leader面试了,后来才知道第一轮面试的结果还是很重要的,一面面试官是非常资深的工程师,只要通过一面了基本就没问题了。
项目介绍,聊一些项目上的问题;
下拉listview的实现,需要注意的地方和优化的地方(不是lsitview的优化,是下拉的优化);
Android上一些优化方案;
介绍了一下现在做的项目,大体说明了现在所用到的技术。
总体感觉网易的氛围还是非常好的,技术实力非常雄厚,leader技术能力也很强,并且一面面试官告诉我,leader有时候还会自己写一些代码,一般到了leader很少有写代码的了。
HR面:
一样的流程,各种谈,说面试官对我评价非常高,希望我能来之类的话,然后就算面试结束了。
想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、redis、jvm、多线程、netty、kafka、的加群:488048032