前言

本人毕业三年,两年Java后端开发,一年Android开发。今年7月面试了字节跳动,半个月拿到offer,记录一下整个面试过程,需要的可以看一下。

一面

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是怎么保证其可信度的。

7.view的事件分发机制。追加问一个view,上下触发,viewgroup左右触发,怎么实现上述场景。

8.设计模式,我说了几种,然后挑了一个单例模式实现了一下。

9.JVM,怎么判断对象是否存活。我说了两种方法,追问可以作为GCRoot 的有哪些。然后问四种引用,具体说了一下。面试官追问引用队列。

10.实现一个判断链表是否为回文链表。

三面

1.自我介绍。

2.问了一些项目上的问题。

3.然后写一个堆排序。

4.问了一下计网方面的问题:关于OSI七层模型,然后讲一下每层的一些协议。

5.讲一下hashmap。

6.自定义view、如何实现一个自定义viewgroup。

7.讲一下未来Android技术方向上的一些规划。

8.反问环节。

总结

整体难度不大,面试官也很nice,但我最后综合考虑了各方面,选择去了腾讯。

相关视频推荐

Android(安卓)开发零基础从入门到精通

Android大厂精选高频面试题逐题解析

FrameWork必问:WMS/AMS/Handler/Binder/事件分发机制/屏幕适配/插件化

Android开发中高级进阶:实现QQ语言变声/网易云音乐无闪烁动态换肤