从2017年初到2019年底我先后面试了腾讯、阿里、美团、字节跳动、百度、滴滴共八次,腾讯和字节跳动面试过两次、从Android测试岗面到开发岗,当然都失败了,但是总结下来大厂面试的大体思路真的基本一致。比如:
Java相关知识
Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们要学习java语言。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。
那么Java中哪些东西是我们Android程序员面试被经常问到的呢?像泛型,多线程,反射,JVM,Java IO,注解,序列化等都属于我们面试高频知识点。
Android相关知识
App开发框架知识体系(内含原理+源码):阿里腾讯面试极其注重源码分析,Binder、IPC、hander、SharedPrefrence 源码和问题点
性能优化:解决过的一些性能问题,在项目中的实际运用,性能优化工具,性能优化(讲讲你自己项目中做过的性能优化)。
Android前沿技术:热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等。
NDK 模块开发:百度专注于人工智能 OpenCV/OpenGl/ 这些又是图像处理必备知识,所以这部分知识是他们比较的,字节跳动的音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发面试必备技能。
当然NDK开发的前提,你需要掌握C/C++,jni,Linux等基础。
设计模式
- 在Java中,重载和重写
- 用过哪些设计模式
- 单例模式(静态内部类);其他设计模式简介
常用网络协议
- HTTP响应的结构
- cookie定义、session和cookie区别
- TCP/IP在连接时有几次握手、释放时有几次握手
- 是TCP协议定义、UDP协议定义、两者区别
算法与数据结构部分
- 复杂度分析
- 数组
- 链表
- 堆
- 栈
- 队列
- 散列表
- 树
- 排序
- 查找
- 递归&回溯算法
- 贪心算法
- 其它有关算法与数据结构的面试题
混合开发
- Kotlin :协程
- Flutter :生命周期
- 项目:
- 项目介绍;项目中的编码规范
- 项目开发中遇到的最大的一个难题和挑战,如何解决。
- 开发优势/能给公司带来什么效益
- 离开上家公司原因
- 性格缺点
- 未来的职业规划
说了这么多只有一个重点,就是无论大厂他有没有题库,面试题的大体方向就这么多,你要都掌握了,还担心去大厂?
那么重点就来了,怎么复习呢?
首先你需要有一个知识点轮廓,对着这个轮廓不停的扩展、延伸,自己查漏补缺。因为虽然知识点就这么多,但是面试官的提问方式还是千奇百怪的,所以你需要通过知识点做相应的延伸,才能融会贯通。
道理其实大家都知道,但是实施起来就遇到了问题,所以这里我推荐最简单的方式:
脑图 + 书 + 视频
什么意思呢?具体解释一下,首先你需要有一个全面的知识点脑图,然后遇到不懂的地方就看书,千万不要去看博客,毕竟博客门槛真的太低了,最后要配合一些高质量的视频,用来巩固知识和开拓视野。
脑图已经给你整理好了,可以根据这个图自行进行查漏补缺和规划:
Android高级面试进阶学习需要的电子书也已经给你整理好了,可以文末查看下载方式:
视频呢?也给你整理了,够意思吧。
视频包含:
1、IPC机制相关面试题视频解析
2、项目相关视频解析
3、性能优化相关面试题视频解析
4、JVM从入门到着迷
5、源码相关试题视频解析
6、BAT面试总结分析
…
以上内容均放在了开源项目:【github】 中已收录,大家可以自行获取(或者关注主页扫描加微信获取)也可以【简信】我获取。