本人写的http://www.nowcoder.com/discuss/2082
今天下午去参加 了 百度的安卓面试,很荣幸的挂了。本来别人好像是准备两轮面试一起搞的,结果给了我一面,然后就告诉说二面对我可能比较难。
我本身是是做电子的,自己自学的软件,整个一面过程一共1小时40分钟。
刚刚开始简单的做了个自我介绍,感觉面试官人还是很好,非常友善。面试中一些技术的问题按问的时间列在下面:
1. 关于自己做的一个项目的一些问题,问了pulltorefresh的一些状态等,现在感觉对自己的项目还是复习的不够,好多都不记得了。
2. Service与Thread区别,这个问题应该是必问的了,一定要知道清楚。
3. SQLite能否并发读取或者写入,自己只记得不能并发写,可以并发读,但是原因不清楚。
4. 线程与进程的区别。
5. 说出自己用过的设计模式,我说了单例,工厂,装饰等,本来这个问题可以回答的可以的,结果面试官转移话题了。
6. 一个双向linkedlist有一个环,怎么找出这个这个点。这个可能是剑指offer上面的,但是我当场只给出了最笨的方法,没有想到 复杂度更低的方法。
7. 写一个二叉树,写出insert方法和遍历方法。第一次现场写代码,这个答的不错。
8. 写出算法计算二叉树的高度,这个没有想出来。
9. java的多态,继承,封装,还有private protected public default的意义,这个时候已经非常累了。
10. Activity与Service的通信问题,这里要对Binder机制和AIDL比较了解,因为自己没在项目中用过,所以回答的不是很好。这个还可以通Broadcast进行通信。
11. 画出Activity与Fragment生命周期,本来android基础方面的问题很有信心的,可是这个问题居然出问题了,实在 是。。。。
后来面试官说对我前面问题的回答 都还比较满意,但是9和11两个出问题,有些不满意,所以没有过。大家还是好好打好基础吧。
如果看到最后,那你应该是面试移动端的,欢迎大家加群368426742(移动开发爱好者)讨论。