导语
在下2012年毕业,目前从事android开发工作已经8年啦,见证了Android从默默无闻,到一夜爆发,从人人学Android,再到现在的平稳期,在从事Android这几年,总能听到Android凉了,Android不行了,要转行什么方向,其实在这里我想说,无论你是转岗还是转行,都不可避免有一段时间的适应期!如果你还坚信Android的未来,那么请你选择一个方向,坚定的走下去,谁知道下一个黄金时期是不是明天呢?
前段时间刚完成一次跳槽,面试了几家公司,将一些面试经验分享给大家,希望对大家有所帮助。
接下来就是各公司的面经了,分享出来供大家参考。PDF 我也已经整理好了,在我的【GitHub】点击就能领取哦!觉得不错务必给我的文章点个赞,希望更多人能受益,谢谢!!
刷题
算法题可以说是现在找工作必刷的了。不过根据我面试的经验,算法题总得来说问的还是比较少,还有一些公司是基本不问算法的。
当然如果碰到字节,快手这种每轮都问算法的公司,如果因为算法题拿不到offer就很可惜了。
算法题就好像高考语文的古诗词默写一样,分不多,但丢了就很可惜了。
根据我的经验,大概刷了,掌握100道题就足以应付面试了。
当然完全掌握需要重复练习,不是刷了一遍就可以的。
这里推荐一下极客时间上覃超的五遍刷题法:
五遍刷题法
1.第一遍,直接看解法
多解法,比较解法优劣,默写好的解法
2.第二遍,打开leetcode,直接开始写
多种解法比较,调优
3.第三遍,过一天之后,再重复做题
4.第四遍,过了一周,再来反复练、
5.第五遍,面试前一周,恢复性训练
通过以上方法重复练习,大概刷100题就足以应付面试,如果每天刷3道,大概准备一个月即可。
题库
刷题也要注意,不要一题一题刷,比如Leetcode的每日一题。
建议按知识点分类,这样比较方便重复练习与知识点掌握。
在知识点刷过一遍后,也可以按照公司分类或者LeetCode热题100刷,一般公司出算法题也是有题库的。
我都已经整理好了,需要的点击链接即可领取!【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】
按知识点分类
![](https://img.haomeiwen.com/i22459598/070161636d2c9dee.png)
![](https://img.haomeiwen.com/i22459598/c48fb31974292876.png)
按公司分类
![](https://img.haomeiwen.com/i22459598/232baa651a9fd163.png)
热题
![](https://img.haomeiwen.com/i22459598/b083338110fff1da.png)
面试
尚德公司面试
![](https://img.haomeiwen.com/i22459598/0cc64c6ffd7e0e43.png)
1.java有什么特性,继承有什么用处,多态有什么用处
2.反射是什么,在哪里用到,怎么利用反射创建一个对象
3.代理模式与装饰模式的区别,手写一个静态代理,一个动态代理
4.对象加载的过程,属性先加载还是方法先加载
5.垃圾回收机制与jvm结构
6.自定义View,事件分发机制讲一讲
7.http与https有什么区别
8.Activity启动模式,以及各启动模式生命周期问题
9.静态方法,静态对象为什么不能继承
10.Activity怎么启动Service,Activity与Service交互,Service与Thread的区别
11.介绍一下android动画
12.Launcher启动App的流程,中间有几种跨进程通信(socket)
13.Handler通信,Binder通信
14.你碰到过什么内存泄漏,怎么处理
15.RXJava怎么切换线程
16.Fragment hide show生命周期
17.平常有用到什么锁,synchronized底层原理是什么
Vivo公司
![](https://img.haomeiwen.com/i22459598/5e94171fd83e08df.png)
1.简单描述下Handler,Handler是怎么切换线程的,Handler同步屏障
2.Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段
3.讲讲mvc,mvp模式,presenter内存泄漏的问题
4.ANR了解过吗?有没有实际的ANR定位问题的经历
5.性能优化你做过哪些?
6.有什么实际解决UI卡顿优化的经历
7.有做过什么Bitmap优化的实际经验
8.项目搭建过程中有什么经验,有用到什么gradle脚本,分包有做什么操作
9.组件化有详细了解过吗?ARouter详细原理
10.讲一下事件分发机制,RecyclerView是怎么处理内部ViewClick冲突的
11.mainfest中配置LargeHeap,真的能分配到大内存吗?
B站
![](https://img.haomeiwen.com/i22459598/e8fb37bf630d91e6.jpg)
1.一个大致有序的数组如何排序,最快时间复杂度
2.如果叫你实现,你会怎样实现一个多主题的效果
3.如何自定义实现一个FlexLayout
4.tinker的原理是什么,还用过什么热修复框架,robust的原理是什么?
5.说说你对注解的了解,是怎么解析的
6.synchronized是公平锁还是非公平锁,ReteranLock是公平锁吗?是怎么实现的
7.泛型是怎么解析的,比如在retrofit中的泛型是怎么解析的
8.mvp与mvvm的区别,mvvm怎么更新UI,databinding用得多吗,databinding的原理?
9.kotlin ?的原理
10.在项目中有直接使用tcp,socket来发送消息吗
11.如何在网络框架里直接避免内存泄漏,不需要在presenter中释放订阅
12.生命周期都是通过什么调用的?有用过AIDL吗?
13.讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView
14.如何实现RecyclerView的局部更新,用过payload吗,notifyItemChange方法中的参数?
15.讲讲LinkedHashMap的数据结构
16.put post有什么区别
17.A Activity打开B Activity的生命周期变化,会有什么方法打断吗?
18.Fragment hide show生命周期变化
19.Fragment replace生命周期变化
B站二面
1.为什么考虑换工作
2.屏幕适配做过什么工作?
3.你们网络框架用的什么?为什么?
4.如果让你来开发B站的一个页面,哪一个页面可以很快入手
5.性能优化你做过什么工作?
6.h5与native通信你做过什么工作?
7.插件化的主要优点和缺点是什么?
8.你觉得B站目前的APP有什么问题?
9.如果产品要求你开发一个音频播放功能,你会怎么着手?预计会有什么坑?
10.ViewPager切换Fragment什么最耗时?
11.线程间同步的方法
12.锁之间的区别
B站三面
1.介绍一下你自已和项目
2.说说为什么考虑离职
3.说说对你们原来公司的印象
4.为什么想来B站?你在B站上常常在看什么?
5.期望薪资是多少?
6.你对搬到上海有什么想法?
腾讯
![](https://img.haomeiwen.com/i22459598/9c04123859a76c66.png)
1.介绍一下你们项目的架构
2.Rxjava是怎么实现线程切换的
3.Rxjava自定义操作符
4.ARouter的原理
5.ARouter怎么实现接口调用
6.ARouter怎么实现页面拦截
7.MVP怎么处理内存泄漏
8.OkHttp怎么实现连接池
9.如果让你来实现一个网络框架,你会考虑什么
10.你做过什么性能优化的工作
11.热修复的原理,资源的热修复的原理,会不会有资源冲突的问题
12.ViewPager中嵌套ViewPager怎么处理滑动冲突
13.android源码中有哪些设计模式
14.说说binder机制的原理
腾讯二面
1.为什么考虑换一份工作?
2.在你们公司这几年感觉怎么样?
3.技术选型上,为什么这么考虑?从开发效率,产品性能,产品质量,产品体验等方面考虑
4.你们的产品为什么被砍掉,从哪方面考虑
5.在这几年里,你有做过什么觉得最有价值的工作
6.你还有什么要问我的吗?目前有几个offer,倾向性是怎样的?
总结
![](https://img.haomeiwen.com/i22459598/06702154548648bc.png)
改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。
以上进阶Android高级工程师系统学习资料可以免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。
如果需要PDF版本可以在群文件夹里,自行领取!
-
或者在群文件夹中里,自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】
网友评论