2016年3月android面试总结(2)

      紧接着“2016年3月android面试总结(1)”,对其他4个公司的面试情况做一个总结:

4.万*科技

        号称很厉害的公司,在南山区软件产业基地那边。这次面试完全被虐了。
        第一轮技术面试,有几个问题问的比较深,android回收优先级、java设计模式、多线程同步(单例)、消息环、anr、内存泄露。尤其是多线程同步(单例),以前只是了解过,根本没用过,只能把大概意思说出来,写不出来;还有消息环,不是简单的问handle、looper,looper是个什么东西,怎么运作的,这边发消息那边怎么就知道要取消息了啊,没消息的时候looper会怎么样啊?anr出现的可能性,怎么分析,分析哪个文件;什么情况会出现内存泄露,怎么分析解决。监听设计模式能不能画一下图。还问了tcp/ip协议族。第一轮感觉一般般,到了第二轮被他们老大虐死了。问ip协议头有什么内容,类似微信的消息队列是怎么维护的,http接口访问不了,是路由哪里出问题了,app用户负载问题怎么考虑。
        总结,多线程同步(单例)、anr、内存泄露、消息环还是了解得不够深刻。公司环境不错,第一轮面试得一般般,面试官人还挺好的,不会的他也不强求,会的,就会深入地问问,答不出来也没关系。第二轮,他们老大的问题没怎么回答上,最后还说什么,不要因为涨2-3K块钱去跳槽,你还有很大的进步空间,要沉下气去学习,不要这么浮躁。。。。。。。。。一大堆,我想说,没有开高价,是因为觉得自己面试得一般,贵公司有很多东西能让我学,这就被你理解为为了2-3K去跳槽,如果我期望得多了,你岂不是会说我不自量力。再说了,每个公司都有自己的技术点,我不会你们的,不代表我不能满足别人的需求,搞得好像每个做安卓的都要会你们问的才对。http接口访问不了,我怎么知道是路由哪里出问题了,我又不是做通信的;app用户负载问题要怎么考虑,一个app就一个负载(用户)而已。如果会你们技术,我才不会到你们公司去呢,因为学不到东西。

5.某珠海著名手机公司魅**深圳分公司

       在深大北门附近,是他们在深圳的一个分公司,要开发一些手机内嵌的应用,类似电商客服之类的。先是笔试题,笔试题还挺有水平的,感觉应该能学到东西,哪知道公司没有做安卓的,HR又骗我了。问的都是一些基本问题,问得都不怎么想回答了。第二轮面试,大概就问问期望薪资,是怎么开发项目的,项目每个阶段做什么之类的。
        总结,公司大概就50号人的样子,以为有安卓开发的,才会去面试的。感觉是我期望薪资过高,第二轮结束以后就让我回去了。

6.某新浪子公司中***

        做彩票平台的,在腾讯大厦附近。问的都是一些基本问题。还说我项目经验挺丰富的,开发项目应该没有问题。第一轮面试完说老大不在,让我明天下午过来,HR会跟我约时间。第二天我也没去,HR也没给我电话。
        总结,环境还不错,是一个没有安卓团队的公司,在组建当中。

7.某国际著名pc芯片公司英**,

        在南山区威新科技园那边。我也是抱着学习的心态去,估计这种公司应该进不了。先是电话面试,问一些基本知识:生命周期、服务、内存泄露、单例坏处、设计模式、线程同步、anr分析、遍历hashmap。过两天就约我去面试。为了面试,我还特意去研究了电话面试问的问题,还找了找英语的感觉,说笔试题是英文的,工作中也要用到。抱着学习的心态去面试,先是笔试题,有难度,几乎不涉及安卓的,都是c c++ java,包括查找算法、数组置换、集合、string对象创建、继承、同步死锁。c c++都没怎么出来,java的都写完了。写了一个多小时,就开始面试,两个面试官,其中一个不会安卓,问的问题虽然很常见,但是要回答到点上不是那么容易,父控件子控件绘制流程、数据库表的设计、消息环、服务的启动、smack的深入研究、aidl、 第三方控件imageloader、数据安全等。
        总结,c这块确实不怎么会,尤其是查找、集合,aidl也不会,数据库表也设计得简单,smack和imageloader也没深入研究过,父控件子控件绘制流程也不深刻,尤其是draw的过程。环境没有想象中高大上,但算可以的,面试官都很友好,像是在讨论问题一样,其中一个安卓比较厉害,没有进入第三轮面试,算是见识过知名公司的面试。估计要就职这类型的公司,至少1轮电话面试、1轮笔试、1轮技术面试、1轮经理级面试、1轮HR面试。

8.腾讯某全资子公司瓶***,

        在南山蛇口这边。面试官一开始说,看简历感觉你很厉害,心想你不会很菜吧,哪知道又被虐了。问题包括:线程池调度复用 (具体如何复用的)、smack原理扩展,登陆具体是怎么登陆的,发出了什么数据包,详细的事件分发流程,window开始,控件的绘制流程,也是从window开始,singletask singleinstance在多进程情况下区别、多线程通信方式(除了handle)、电量流量优化、著名第三方jar的原理,数据结构。
        总结,以上问的问题都是只知道一点点,没有什么深入了解过。这家公司两年前去面试过,拿到了offer,现在无法满足他们的要求了,出来混真的是要还的。挺想去这家公司的,公司环境不错,是做刷机类的应用。后来跟HR沟通得知,面试官觉得我的数据结构比较弱,而且做的应用也比较简单了,虽然用到了一些东西,但是不知道他的原理。


总结:

        通过这次面试,有些知识自己还是没有太深入的了解,例如控件绘制流程、数据结构、多线程通信方式、事件分发、aidl,还是得多学习啊。后续会对面试中碰到的问题进行有计划的学习研究,会写成博客记录下。

不过有几个经验想跟大家分享下的:

1. 想去大公司,例如bat这种,学历还是很重要,没有本科学历,很难通过hr的帅选,除非你真的很牛,但是你得通过其他方法告诉他你很牛,内部有人、出书、博客访问量、开过论坛或者其他。不是说本科就很好,它只是一个敲门砖而已,代表你的学历能力。如果一个本科跟一个专科,两个能力差不多,估计大公司都会选择本科的。

2.除了bat、华为、中兴、oppo,深圳还是有很多公司可以选择的,例如腾讯的子公司、盒子支付、大疆科技、迅雷、优酷土豆。

3.遇到不会的问题,不要怕说,会多少就说多少,面试官只是想知道你会多少而已,不说你肯定没有没有机会。

4.薪资到了一定程度要继续涨,就有难度了,你知识的深度跟广度就得加大,不是简单的知道,而是要知道为什么这样,代码是怎么样的。例如绘制流程很多人都知道measure,layout, draw,但从window开始到最里面的子控件又是怎么样一个流程呢,每个方法是怎么调用的。




你可能感兴趣的:(综合)