腾讯--阅文集团2017校招 android开发岗
笔试 时间:
11月7日 地点:北京邮电大学
选择填空考的内容比较全面,数据结构和算法,计算机操作系统以及网络。除此之外还有概率、智力题。平时多在牛客刷刷题应该可以应付。
大题第一个考了一个直接插入排序,要求代码实现并且分析复杂度。
第二个考的网络OSI的七层协议。
第三个考的二叉树的按层遍历,并且每打印一层要换行。只要求写出思路然后分析复杂度(剑指Offer的原题)。
Android附加题
1.描述Handler的原理
2.Fragment相比Activity的好处是什么
3.ListView和RecyclerView的区别有哪些
4.一道字符串算法题,挺简单的就不细说了。
笔试之后第二天下午接到电话,笔试通过,准备一面。
一面 时间:11月10日 地点:科大天工大厦 小说阅读网
上来问了具体说了项目中的一些细节
然后问了Java基础,问到String和StringBuilder的区别
接着问了Activity的生命周期,Activity启动模式中SingleTask和SingleInstance的区别
之后是Service的启动方法有哪些,区别是什么,销毁的时候有什么不同(这块没记的太准确)。
随后问到TCP三次握手的过程,然后问如果省去最后一次握手就建立连接会有什么结果。
然后问到了Handler会导致内存泄漏的原因,这块没回答好,但是面试官很好,引导我让我想起匿名内部类会有外部类的引用(类名.this),Activity销毁时Handler如果还有消息没处理完就会导致内存泄漏。没问解决方法,其实面试时也是应该知道的。随后问如果Activity中有两个Handler实例,在HandleMessage时怎么区分两个Handler发的不同的消息。这个问题建议看一下源码,在Handler执行enqueueMessage时会有一句msg.target
= this;也就是绑定了当前的handler。
之后让叙述一下View的事件分发,并且问了如果让自己实现是一个onLongClickListener怎么实现。接着是滑动冲突怎么解决,举的例子是ViewPager里面嵌套一个ViewPager。只要事件传递原理明白,冲突就好解决。
最后问的ListView的优化方法有哪些。我主要回答了convertView,ViewHolder,ViewType。然后面试官提示还有图片,我可能回答偏了回答的是图片的一些优化方式,后来明白过来可能面试官希望我说的是滑动的时候不加载图片,不滑动的时候加载。
总的来说面试挺有价值的,查漏补缺。面试官也很好,你不会的知识会引导你。
面试结果还在等...希望能过~