百度Android三面完成,发发面经
二面过了之后,还是挺开心的,结果没想到又一次倒在了三面上。上次百度实习的时候就是三面不好,然后挂了,这次竟然又是这样!
废话不多说,一面:http://www.nowcoder.com/discuss/11058
二面:二面感觉问了很多,二面的面试官是那种很随意的性格,这种面试官有一个好处就是不会给你压力
一进去,首先就是问了一下项目的整体流程,然后问到了设计项目的时候是怎样去划分的,思考的。这个当时自己就是水一水就好,没有太多的思考啊,不过马上就说下一个问题了。
接下来谈了一些关于设计模式的,说到不太会,就熟悉常见的单例模式,观察者模式,以及适配器模式的思想。然后面试官又问我知不知道Buidler模式,于是说Android里面AlertDialog就是使用的Builder模式的思想,然后让我手写一个Builder模式的简单示例,这个会写,很快就写完了。然后又让写一个观察者模式,这个设计模式之前
没有写过,只看过一些代码,有点忘了,不会,主要说了一下思想,于是就跳过了。
之后就是Android相关的问题,问到了Handler机制,Binder机制,Binder机制讲的比较浅。讲了四个主要的组成部分,然后将这张图画出来,讲了讲之间的使用关系,也没有深入到相应的C层进行分析(关键是自己看不懂C层),面试官的评价应该是还可以。以后如果问到,大家不是很精通这套机制的也可以照着这个说一遍(不同的面试官不一样)。
其他的一些问题记不太清了,感觉就是比较基础的(百度的面试好像就是前两面都比较看重基础,然后就是三面总监级别的),学好Android基础之后应该就没什么问题了。
最后就是考察手写代码的能力了,这次比较幸运,说的两道题都比教简单(都是剑指Offer的原题),第一题就是在O(1)的时间内删除一个节点,这个主要思想就是如果该结点不是尾结点,那么就只需要将后一个结点的值拷贝过来,删除后一个结点即可,如果为尾结点还是只能顺序查找的情况,当然还要考虑只有一个结点的情况。
第二道题是求最大子数组的和,思想剑指Offer上面说的很清楚了,所以这里就简单的提一下。curSum小于0的时候,就只需要将curSum赋值为array[i]即可,否则加上array[i]。这道题也不是很难。
二面大致上就是这样,事后问了一些评价(可以通过面试官对你的评价大概知道面试会不会通过,当然有的面试官不会说),他说道还行,我就觉得看来还有三面。果然晚上就收到了三面的电话
三面:本来刚开始约的是下午四点的,后来又给我打电话说约到了上午的九点半(一直在想要是不改就好了,不过估计也没啥用)。
一进去之后,发现二面的面试官坐在那个房间里面,当时对这种情况有点蒙(希望只是在写代码,没有干其他的)。
三面果然不按套路出牌,我简历上面写着爱旅行,三面的面试官就让我推荐一下成都好玩的地方,balala,说了一通,把成都觉得还不错的地方说了一下。然后又让我介绍一下如果一天时间,该怎样规划(估计是想面试结束之后旅行),也推荐了觉得比较好的地方。
之后就是问项目,但是让我始料未及的是,如果觉得你不行就没有下文了,因为可能在项目中没有加入自己的过多的思考,可能给他的感觉就是缺乏思考能力(最后问评价时面试官说的),然后它就说我要问的问完了......当时满脸写着忧伤,这种套路遇到的太多了(每次遇到这种情况了都是挂了)......好不容易遇到个总监级别的,结果基本没咋聊,就没了.......而且我问他的时候让介绍一下新的技术的时候他还说我们这在面试,后面的人还很多,不聊技术.......(其实心里想着这不也是技术面吗,为什么连技术都不愿聊,估计也是我太水,水到人家不愿搭理我了)。
整个面试流程应该就完了,没想到的是命运又一次在三面的时候给我设了一个坎,看来还是无缘啊。而且最后走的时候也没有跟二面的面试官道一声谢,略显遗憾
#百度##安卓工程师#