近期被两则消息刷屏,【字节跳动持续大规模招聘,全年校招超过1万人】【腾讯有史以来最大规模的校招启动】当然Android岗位也包含在内,因此Android还是有很多机会的。结合往期面试的同学(主要是校招)经验,我归纳整理了全套Android面试题解析。当然,这些面试题答案解析也整理到了PDF手册里,文末领取。
我整理面试题如下,供大家参考,知道比没知道的好。可以帮大家查漏不缺。以下是(腾讯,百度,华为,搜狗和滴滴 这些厂的面试题)
献上面经~
一面:
0.自我介绍完 , 说说项目 , 从第一个到最后一个;
1.问了常用布局有哪几种;
2.Activity生命周期有哪些 , 具体什么情况下回调;
3.问了进程间通信 , Binder、管道、socket等;
4.问了View事件的传递 , activity-window-decorview-view;
5.事件怎么从手指传递到activity的;
6.LongClick和OnClick分别怎么触发的;
7.说说Java类加载器 , Android有哪些类加载器 , android顶级类加载器是什么;
8.怎么自己加载一个类 , 不让父加载器去加载 , 自己load的话 , 怎么解决其它类加载器的引用;
9.说说内存优化(内存泄漏、大对象优化等) ;
10.说说openGL(举了一个实例 , 做一个画中画);
11.说说netty(之前项目提到过) , 基于什么线程模型 , 为什么能承载高并发;
12.说说你最擅长什么(说了x86项目移植 , 算法优化);
13.写一个排序算法 , 时间复杂度多少 , 怎么优化(写了归并 , 说了加希尔) ;
14.写一个常用的动画。
二面:
1、自我介绍?
2、很大数组中找第K大元素?
3、项目相关?
4、比较擅长什么语言?脚本性语言?
5、三次握手?
6、UDP数据包长度多少?
7、研究经历?
8、最近看的书?
9、对Linux环境的了解?
10、进程的状态有几种?
11、你觉得你优势的地方?
12、平时学习开发过程中遇到什么困难?
13、发表了几篇论文?
14、进程和线程的区别?线程池?
15、多线程要注意什么问题?
16、有什么想问的?
三面:
1、项目?项目难点?花了多久时间?
2、有了解哪些最短路算法?如果速度不够,你要怎么优化?
3、最近在看哪些书?
4、平时关注哪些技术?
5、进程与线程的理解?什么时候用进程什么时候用线程?
8、说一下平时的一些学习习惯?
9、团队沟通能力?
10、遇到的最困难的事情?
11、你有什么优势?有什么缺点?
13、对于OFFER怎么选择?考虑哪些因素?
14、有什么想问的?
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在GitHub可以见;
Android架构视频+BAT面试专题PDF+学习笔记
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
AB%98%E8%96%AA%EF%BC%81.md)**
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。