Android字节跳动三面面经(已OC)
秋招的过程中看了很多面经,此次分享一下自己的面试经历,也算是对大家的一个回馈吧。欢迎一起交流学习,共同进步!
一面
1.首先是自我介绍
2.说一下Activity的生命周期,接着再讲一下一个活动调用另一个活动,这两个活动分别调用了哪些方法。
3.OkHttp说一下,问了我一下具体学到哪种程度了,是仅会使用还是读了源码。
4.Java的内存模型说一下。
5.进程和线程讲一下,这里延伸到了进程间通信。
6.view的绘制流程讲一下,具体说一下各个之间的参数。
7.讲一下view的事件分发机制。
8.将一下线程池的七个参数,还有具体的工作流程,具体有哪些拒绝策略。
9.讲一下JVM内存模型,垃圾回收算法,机制。怎么判断对象是否存活,可以做GCroot的有哪些对象。
10.操作系统的分段分页。
11.做一道算法题,之字形打印二叉树。
二面
1.首先是自我介绍
2.上来问Android基础,activity生命周期说一下。
3.服务,问了我绑定服务和启动服务两者的区别。先绑定,然后之后再启动。这样的服务怎么结束。面试官追问,前台服务和后台服务的区别。
4.fragment用过么,说一下它的生命周期。两个fragment之间怎么通信。
5.handler了解么,讲一下。
6.计算机网络了解么,TCP是怎么保证其可信度的。http的缓存了解么。
7.view的事件分发机制了解么。追加问一个view,上下触发,viewgroup左右触发,怎么实现上述场景。
8.设计模式了解么,我说了几种,然后挑了一个单例模式实现了一下。
9.JVM了解么,我说了解,然后问怎么判断对象是否存活。我说了两种方法,追问可以作为GCRoot 的有哪些。然后问四种引用,具体说了一下。面试官追问引用队列了解么。
10.实现一个判断链表是否为回文链表。
三面
1.首先做一个自我介绍
2.面试官问了一些实习方面的问题,包括部门主要做了哪些业务,然后是在这过程中最大的收获是什么
3.然后写一个堆排序
4.问了一下计网方面的问题:关于OSI七层模型,然后讲一下每层的一些协议。
5.讲一下hashmap;
6.对自定义view的了解、追问如何实现一个自定义viewgroup
7.讲一下未来学习Android方面的一些规划。
8.反问环节的话就是问面试官那边的工作节奏,以及自己今后的路该怎么走之类的。
整个过程的话面试官是相当nice。