来自BAT的程序员面试经验分享
Posted 极客学院
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自BAT的程序员面试经验分享相关的知识,希望对你有一定的参考价值。
很多Android开发工程师新手去企业面试的时候都希望有一些名企面试经验作参考,本文为大家整理了一些来自百度、腾讯、阿里的面试经验,希望能对即将去面试的小伙伴有帮助~
来自百度的面试经验
1.“感觉面试不难,我个人所做的一个应用正好和他们的一个im项目类似"
本次面试是单独面试,地点在首创空间1楼, 面试问题主要以我做过的项目为主,包括service的应用,如何开机自动启动service, 内存如何优化, 如何防止图片导致的oom,线程的优化, 还提到了个frameLayout. 还有及时聊天如何实现. 还有部分自定义控件如何实现, listview的优化,差不多就这些.
2.“三面都是技术面,一面基础,二面技术,三面跟你聊互联网发展”
一面是个很年轻的面试官,估计是第一次做面试官。问了一些数据结构数据库计算机网络的基础概念。给我做了一道算法题,我想了半分钟,也写出来了。不难
二面是第二天早上,那个面试官去买早饭了,我等了他10分钟。进门自我介绍,然后他背对我打开电脑开始以及其变态的速度一个一个的问我题,还要求我只能一句话回答,态度很严肃。也是一些稍基础的问题,比一面问的深入。后来他让我3分钟之内写出来链表逆序的递归算法,我不懂为什么偏要递归,其实题不难,不过他限定了时间,心理就紧张了,最后还是写的有点问题。最后面试官突然对我一笑,说你二面通过了。
三面是云平台的老大,我给他大概展示了我之前做的一个项目。他问我在我的理解里互联网时代的爆点是什么,我尽我所能的扯了扯。后来他有问了一个很泛的大数据问题,一层一层的深入问下去,直到深入的我答不上来。因为我面的是上海的职位,所以等上海区面完才发offer。感觉百度很重基础
3.“android基础知识,java基础知识和项目经验都回答的不错,面试官也表示满意。但因为不是计算机专业,所以算法、网络等计算机基础知识不太扎实。”
面试经历:
一面:
1. android四大组件
2. Activity生命周期
3. 两种Service用法(startService、bindService),使用场景
4. BroadcastReceiver收发原理,有几种注册方法(程序注册和menifest文件注册)
5. Intent显式及隐式,使用方法,工作原理(发出后,系统根据参数找到对应的目标并执行)
6. Handler及Looper的使用方法及使用场景
7. AysnTask的使用方法及使用场景
8. 几种Layout,padding/margin/gravity/weight各自含义
9. 自定义组件(自定义adapter的使用)
10. ANR异常,OOM异常及如何解决,内存泄露的含义
11. 进程间通信(AIDL),Binder。
12. WebView,html5。
13. Java内存回收机制(gc机制,新生代老生代)
14. Java集合Vector、ArrayList区别。
15. 多线程并发如何实现(concurrent.Executor)
16. Synchronized关键字的用法
17. 为什么会出现线程安全问题。
18. 看简历,让介绍一下做过的android的项目。由于我是app和后台服务程序都做,所以让介绍整个架构,及客户端与服务端如何通讯的。(确实是自己做的,所以可以回答出)
19. TCP/UDP协议属于哪一层,网络协议共有几层。
20. 排序算法都有什么?(冒泡,快速,插入)
21. 用最熟悉的语言写一个冒泡排序。
22. 上一个公司是什么公司(是个创业公司),为什么离开上一家公司
总结:
项目经验回答的挺顺利,计算机基础回答的不好。面试官说,我这关你是过了,因为项目经验没问题,但是我们领导比较重视基础,你还得再好好准备准备才可以。给再去互联网公司面试的同志们提个醒,不管你面的是什么语言的开发职位,也不管你是做底层还是做app,算法神马的都是必考啊,平时多积累吧。
— — — — — — — — — — — — — — —
来自腾讯的面试经验
1.“共五面”
面试官问了为什么要离开和对哪方面比较擅长,技术方面,然后会深抠,这里要是不是特别清楚别说
2.“感觉整个面试过程很舒服,一点都没有紧张的感觉”
到了后直接单独面谈,我当初以为到了后就丢个试卷给笔试的,没想到是直接面谈,面试官很nice,面谈时直接让我讲讲过去的项目经历,我把事先准备好的东西都一一讲述了一遍,后来面试官就针对我的项目提几个问题,主要涉及内存的安全性等,我感觉自己回答的还是可以,但是后来面试官很直接的跟我说一个我是女生,可能跟不上开发紧张的节奏,另外感觉我在网络方面的基础比较差,所以跟他们的需求还是不太匹配,当场就给了结论,后来我还跟他聊了一下,要他给我点建议,他也很好,说了说自己的看法!
3.“偏向于网络,数据访问的性能优化”
并没有安排笔试,直接从自我介绍开始,然后就是从简历上列的项目经验开始沟通(其实感觉这样更能考察一个人的能力)
面试主要涉及如下:
1、在复杂网络(数据网络+wifi网络)下,如何优化处理以达到最优的数据存取性能;
2、多线程数据访问处理;
3、网络编程方面知识。
平时工作主要关注的是功能实现,性能优化并没有过多深入,毕竟产品访问量在这里,而腾讯产品对稳定性,性能优化关注较多。
— — — — — — — — — — — — — — —
来自阿里的面试经验
1.“面试还算简单,会根据你做的项目来问问题。
一般如果是招聘会,会当天就面干净。一般是,技术一面,技术2面,然后是hr谈职位和薪水。最后如果过了,就是另外一个hr跟你聊具体的offer情况。面试不难,但一定要考虑好,是否要进这种大企业,因为精英很多,你狠有可能被淹没在人才里面,然后还被鄙视。面试官问了你过去的工作中的困难。
2.“4轮面试,搞了将近一天,比较耗体力。”
面试的人很多,面试官很辛苦,笔试1轮(Android基础) + 面试四轮:技术面、部门经理面、部门上级总监面、HR面。重要的是前两面。
3.“面试问了很多项目经历,对项目很看重”
一面总共四十分钟的左右。刚开始面试官让我先自我介绍。我就大概说了一下研究生以来自己做的一些java和android开发的一些经历。
本人本科是学的土木工程,学it是从研究生零起步开始的。研一的大半年是在学习java和javaEE的一些东西。研一暑假开始自学android开发。
来百度前做过两个android的产品。在今年3月底来百度这边实习到现在。自我介绍完以后面试官针对本人做的一些项目提出了一些问题。
首先问到了我做的项目都到了那些android技术。我就大概针对每个app说了一些用到的技术,第一个app大致有Listview,viewpager,百度sdk,友盟分享组件,统计......个人觉得面试官问这题目主要是为了考察面试者是不是在撒谎自己做过的项目。
面试官接着问到了你觉得自己项目中哪些是最有技术含量的。我重点说道了第二个app中的聊天功能。刚开始聊天是打算用socket来做,
后来考虑到项目中需要用到大量的推送,于是就用推送来做聊天。推送是在android开源框架androidNP上进行二次开发。
聊天的一个难点在于怎么判断用户是否是在聊天界面。然后就讲到针对此难点本人想到的一个解决方案。面试官又问到了本人在百度做的一些项目。
问我了解哪些开源项目,本人正好在一个开源交流群里混过半年,对一些常见开源android框架还是有些了解。顺口就说了十来个。然后就谈了每个开源框架在项目中的运用,有的也虽然没用过,但是自己也研究过一点。
之后面试官问了一些算法相关的东西,如快速排序原理等。最后问我有什么想问他的。这个问题在每次面试中都是必问的问题,可以提前准备。
前人栽树,后人乘凉,希望已上内容对大家有所帮助。
也祝大家在面试中都能顺利通过~
点击阅读原文查看更多面试经验~
绝对有用记得 分享 哦~
以上是关于来自BAT的程序员面试经验分享的主要内容,如果未能解决你的问题,请参考以下文章
BAT Java面试完整汇总:面试准备(心态+简历)+面试题目+6条面试经验