腾讯

190人关注 关注 2452 人分享

前端 面试经验( 北京西城 ) - 腾讯
发布时间: 2019-01-12 10:19:29 来源:职业圈
面试过程:

投递简历的时候看到腾讯的事业群都莫名的振奋,觉得每一个都是行业里的榜样了,心里默默许了个小愿望:希望自己能进入其中一个部门。关于简历,我还是向我室友彬学习的,除了把自己的项目写上,还要写自己擅长的知识点,比如多线程开发,网络请求,优化等等。我主要是在两个项目(Feca和逛周下的功夫比较多,这两个都是创新赛的十强)的框架方面准备的比较多。一个是Volley网络请求框架和Fresco图片加载框架,一个是Retrofit网络请求框架搭配Rxjava使用。这两个框架不仅要明白各自的特性,还要和其他的框架形成对比,知道优势和缺点在哪,并且要看一下原理,毕竟会用是一般人都会的,原理才是筛人的标准。此处要特别感谢我的室友彬哈哈,他向我提出了一个很好的问题:”如果让你设计XXX,你会怎么设计“。没错,不仅要会用这些框架,要经常思考,如果不用框架,自己设计实现功能要怎么实现,这也是面试官可能会问的。

因为我是半路出家学习java和安卓的,所以可能平时开发的时候并不会去看源码和原理,大多数就是实现了就好了,所以有些东西云里雾里。关于这个弱项,我是在寒假期间看了一本《安卓开发艺术探索》,它是一本安卓工程师的进阶书,但是确实非常适合准备安卓面试的人看,深入浅出比较好懂,而且知识点很全面,例如IPC,四大组件工作过程,消息机制,多线程,View原理,性能优化,常见异常的处理和分析都有包含,而这些也恰恰是面试官常问的东西。而且这本书会带着我们看源码,看了源码还是很有帮助的~而且也不至于面试官一问深了就不知所云了。

面试官问的面试题:

试官:先自我介绍一下。

我:大概说了下自己来自哪个大学,什么时候开始学习安卓,为什么感兴趣之类的,没说获奖情况。

面试官:说一下项目吧。

我:把逛周简单介绍了一下,接下来就该进入我准备的环节了, 我说我用Volley框架进行了网络请求。

面试官:为什么使用Volley,而不是用其它的?

我:因为考虑到逛周不需要下载大文件,而是频繁的和服务器进行较少数据的交互,这符合Volley的特点,而且Volley使用简单,并且封装了4个请求线程,使得能够并发请求,而且不会因为无止境的开线程造成的资源浪费。

面试官:那除了Volley你还用过其他的请求方式么?

我:Feca用的Retrofit和RXjava,retrofit的好处是利用注解来标明请求方式,比较简明,并且链式操作美观优雅和rxjava配合起来,能够方便的切换线程。(在这里要强调一下,我其实这个时候没仔细准备retrofit,只是知道一些优点。后面室友彬给我普及了一波retrofit原理是动态代理,才大概懂了一些)

面试官:(感觉比较满意)那你图片加载为什么用Fresco呢?

我:因为考虑到逛周要请求大量的图片,所以一开始不用框架的时候,会产生OOM,当时考虑到Fresco不是在应用内的内存中存储图片,而是在本地开了一块匿名共享内存,所以根源上解决了OOM的问题,并且实现了三级缓存,可以有效的减少网络请求的流量,而且可以方便的加载gif图等多种图片格式。(只回答优点是不够的,因为不可能所有的优点都让一个框架占了,在这里幸亏我和我触宝实习的leader交流过,他告诉我fresco体积太大,对于包体是非常不利的)不过Fresco也有缺点。

面试官:(饶有兴趣)那你说说它的缺点

我:Fresco的缺点就是它的体积太大,因为要支持这么多功能,它里面封装的内容也就会多,引入fresco会使包体增加4-5Mb空间,apk的大小对于用户来说非常重要,毕竟我们都喜欢下载小一点的app,而且多一兆的体积,对于应用推广的成本也就多很多。不过鉴于当时是参加比赛,为了方便而不是商业化,而且逛周的图片加载真的很多,所以我们还是选择了Fresco。

面试官:OK,那你有用到列表么?

我:有的,我用了RecyclerView.(在这里要提醒一下,RecyclerView和ListView真的是非常重要的知识点!!)

面试官:那你说一下RecyclerView对于ListView的优点吧。

我:1.支持多种布局(例如线性,网格,瀑布等)2.动画特效 3.局部刷新 4.不用自己实现Viewholder,解耦比较好.(还有一个支持多种列表元素我当时不知道,后面室友彬告诉我的,有一个viewtype,可以指定多种元素和多种viewholder)。然后顺便回答了一下如何优化listview,比如复用view啊,不能在getview中执行大量的耗时操作呀,要开线程,还有滑动的时候不要加载图片(因为快速滑动时会造成很多个getview的执行,这样子开如此多的线程对于资源来说开销太大!!!)

面试官:(可能是因为我不仅回答了Recyclerview还顺便把listview给答了,突然没啥能问的了)那你有什么问题想问我么?

我:(这种问题一般我都会问有没有定期的技术分享交流会,公司氛围如何)

面试官:你能接受在深圳工作么?

面试相关细节(职业圈独家调查):

你是通过何种渠道获得这次面试机会的?
答:校园招聘
整个面试花费了多长时间?(从接到面试消息到得到结果)
答:3天
面试形式包括哪些?
答:电话面试
你觉得这次面试的难度如何?
答:简单
你对这次面试的整体感觉怎么样?
答:不好
这次面试的结果如何?
答:面试未得到工作

赞一下 踩一下

评论

还需查看腾讯 更多信息?

腾讯工资待遇894

腾讯面试1416

腾讯评论142

相关公司面试经验