网易杭研Android研发面经
9月初,我收到网易内推的offer,一直想去网易,没想到第一次找工作面试就过了,我很幸运,很感恩。这次面试问的问题不太难,而且项目都是我自己独立完成的,所以项目这块我很了解,也给我加了不少分。我面的是Android研发工程师岗,现将面试内容记录如下:
1、一面
首先是自我介绍,然后开始问基础的,项目有问,但是不多,都是针对简历中项目描述的知识点零散的问,这次面试始终没有问到(网络协议和算法)的知识
Java相关:
(1)线程池有几种用法?newFixedThreadPool是怎么执行的?--coreSize与maxSize
(2)内存泄漏和内存溢出
Android相关:
(1)有用过什么框架,看过他们的源码没?
(2)平时有用过什么开源项目?
(3)AnsycTask的原理?(我的简历里提到过AnsycTask)
(4)在纸上写了个Activity,然后在类里面定义了一个Handler,问我这个会有警告,怎么解决?--static、软引用
(5)Service的保活
一面我感觉自己太紧张了,好多问题明明都知道,也可以答深入一点的,但是当时脑子却像卡了壳似的,回答不上来,看来找工作也要多面面,次数多了就有经验了。我感觉自己一面回答的很不好,感谢我的面试官高抬贵手给了我进二面的机会。。。
2、二面:(问的基本都是项目)
(1)首先自我介绍一下,着重介绍一下你的项目的难点以及你在项目里主要负责的部分、
(2)你的listView是怎么用的,在纸上给我画一下吧?---你简历上写的优化listView你是怎么优化的?---RecyclerView和ListView的区别?
说技术点的途中提到了LRU缓存算法,他说正好我不太懂,你给我说一下原理�
(3)用过什么设计模式?在纸上写一个你最熟悉的设计模式,要求功能完备不能出错---我写的Double-Check的[单例模式](http://www.jianshu.com/p/45b3a39977fb)---(注意volatile的使用及线程并发控制)
(4)除了handler,子线程与UI线程还有几种通信方式?(runOnUIThread、post)
(4)启动Service的两种方式?startService和bindService的区别�?对Binder的了解(这个问题我回答的比较深入,因为我看过底层Binder驱动的源码,研一的时候也研究过,答到了transaction函数这里,可惜太久没回顾当时有点忘了,事后仔细捋了捋,觉得可以将流程给他细化一点)
(5)提到另一个项目时面试官似乎觉得不太难,我“强行”给他说了一些这个项目的难点以及我遇见的问题是怎么解决的,听完以后他似乎更满意了,看来机会还是要自己争取,哈哈
(6)最后问我有没有什么问题要问他的?
整个二面面试下来我觉得自己很有戏了,因为面试官对我的基础以及项目很满意,我回答问题的时候着重表现了一些自己更深入的理解,很多源码层面的东西我都有涉猎,面试官夸我基础比一般的应届生扎实不少,且项目是自己扎扎实实做的,非常不错。但我刚来时候也很紧张,自我介绍都没准备,表现能力还有待提高。。
3、HR面:
(1)地域问题,为什么会选择来杭州?
(2)目前都有哪些公司的offer?投递了哪些公司?
(2)是否有男朋友?
(3)想要了解公司什么
(4)对公司文化的了解
(5)薪资问题
建议大家提前准备一个自我介绍,我三面都让自我介绍了,然而我居然没准备...ORZ...我很幸运,面我的三个面试官都很亲切和蔼,问的问题也都不算难,这样的结果我很满意,也很感激那个一直踏实努力的自己,最后,祝大家都能收到自己满意的offer!