Context都没弄明白凭什么拿高薪,实现原理分析
作者:互联网
1.泛型有什么优点?
2.动态代理有什么作用?
3.拉圾回收的GCRoot是什么?
4.Handler机制了解吗?一个线程有几个Looper?为什么?
5.你了解协程吗?协程有什么作用?可以完全取代rxjava吗?
6.你们用的什么消息通信机制
7.你的项目有什么难点?介绍一下?
8.算法题,二叉树最长结点集合
猿辅导2面
1.你们项目中的难点是什么?
2.编译期注解处理的是字节码还是java文件
3.你在项目中有用到什么设计模式吗?
4.ARouter的原理是怎样的?
5.插件化的原理是怎样的?
6.算法题,K个一组反转链表
7.广播与RxBus的区别,全局广播与局部广播区别
猿辅导3面
1.你们项目中有什么难点?
2.@JavaScriptInterface为什么不通过多个方法来实现?
3.为什么不利用同步方法来做jsBridge交互?同步可以做异步,异步不能做同步
4.网络封装怎么实现?
5.算法题,不同面值的几个硬币,怎么求满足条件的最小值
斗鱼
1.说说HashMap的原理
2.说说Java的内存分区
3.讲讲你对垃圾回收机制的了解,老年代有什么算法?
4.说说你对volatile字段有什么用途?
5.说说事件分发机制,怎么写一个不能滑动的ViewPager
6.说说你对类加载机制的了解?DexClassLoader与PathClassLoader的区别
7.说说插件化的原理,资源的插件化id重复如何解决?
8.mvp与mvvm模式的区别是什么?
9.JetPack组件用过哪些?lifeCycle的原理是什么?如果在onStart里面订阅,会回调onCreate吗?
10.单例模式有什么缺点?
11.说说App的启动过程,在ActivityThread的main方法里面做了什么事,什么时候启动第一个Activity?
12.说说你对Handler机制的了解,同步消息,异步消息等
13.说说你对屏幕刷新机制的了解,双重缓冲,三重缓冲,黄油模型
14.onCreate,onResume,onStart里面,什么地方可以获得宽高
15.为什么view.post可以获得宽高,有看过view.post的源码吗?
16.attachToWindow什么时候调用?
17.DataBinding的原理了解吗?
滴滴一面
1.JVM类加载机制了解吗,类什么时候会被加载?类加载的过程具体生命周期是怎样的?
2.Handler内存泄漏的GCRoot是什么?
3.动画里面用到了什么设计模式?
4.OkHttp里面用到了什么设计模式?
5.OkHttp连接池是怎么实现的?里面怎么处理SSL?
6.泛型为什么要擦除?kotlin的泛型了解吗?泛型的pecs原则
7.同步屏障
8.性能优化做过什么工作?
9.RecyclerView的缓存结构是怎样的?缓存的是什么?cachedView会执行onBindView吗?
10.RecyclerView嵌套RecyclerView,NestScrollView嵌套ScrollView滑动冲突
11.ViewGroup在Action_Move时onIntercept返回true,事件怎么传递
12.Launcher启动图标,有几个进程?
13.JMM可见性,原子性,有序性,synchronized可以保证什么?
14.源码中有哪里用到了AtomicInt
15.AQS了解吗?
16.Activity内LinearLayout红色wrap_content,包含View绿色wrap_content,求界面颜色
17.ViewModel的使用中有什么坑?
18.有用DSL,anko写过布局吗?
19.HashMap查找的时间复杂度是多少?
20.阿里编程规范不建议使用线程池,为什么?
21.四种线程池原理?
22.了解哪些算法?
23.IdleHandler用过吗?
滴滴二面
1.如何封装一个字符串转数字的工具类
2.如何求当前Activity View的深度
3.多进程怎么实现?如果启动一个多进程APP,会有几个进程运行?
4.反射可以反射final修饰的字段吗?
5.Activity与AppCompactActivity区别,Activity会打包到包里面去吗?
6.如何让两个线程循环交替打印
7.怎么中止一个线程,Thread.Interupt一定有效吗?
8.动画连续调用的原理是什么?
9.做过一些SDK的操作吗?
10.协程可以在Java项目中使用吗?
11.SharedPreference原理?读取xml是在哪个线程?
12.了解APK打包的过程吗?
13.class文件的组成?常量池里面有什么内容?
14.自动装箱发生在什么时候?编译期还是运行期
15.bugly日志收集的原理是什么?
16.启动优化做过什么工作?如果首页就要用到的初始化?
17.DataBinding原理
滴滴三面
1.插件化的原理是什么?有没有什么非运行时插件化的解决方案?
2.ARouter的原理是怎样的?注解处理器是处理java还是字节码
3.java和字节码有什么区别?
4.kotlin空安全的原理是什么?
5.性能优化做过什么工作?有用过什么工具?有没有精确测量的工具?
6.kotlinc与javac编译字节码有什么区别?
7.你在团队中是怎样一个角色?
8.你有没有做什么推进项目的工作
9.说说热修复的原理?
面试复习路线,梳理知识,提升储备
自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。
关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
开源分享:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
- 架构师筑基必备技能
- Android高级UI与FrameWork源码
- 360°全方面性能调优
- 解读开源框架设计思想
- NDK模块开发
- 微信小程序
- Hybrid 开发与Flutter
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:
《960全网最全Android开发笔记》
《379页Android开发面试宝典》
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
如何使用它?
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
标签:高薪,什么,面试,源码,线程,Context,原理,Android 来源: https://www.cnblogs.com/ojbk666/p/15347562.html