Android 高级面试题:面试十几家公司入职外企后,掌握这几个关键点面试通过率很大
接下来再附上入职前面试几家公司的面试题:
t 讯地图
算法:非递归实现二叉树前序遍历;
手写:双重检查单例类(其中 volatile 关键字作用)
GreenDao 底层实现
binder 用处和原理
messager 用处和原理
Android 中的内存泄露
oom 原因及如何定位
如何降低程序崩溃率
okhttp 源码理解,使用拦截器的用处和好处
项目中的难点
组件化、插件化
ExoPlayer 源码
图片优化,如何压缩、如何缓存
b 度
算法:检测字符串是否符合 ipv4 要求
结合各种启动模式,Activity 各种情况下的生命周期
多任务栈情况下的生命周期
多任务栈情况下 startActivityForResult 和 setResult 有用吗
同时启动两个 Activity,各自生命周期如何执行
同已 service,start 之后又 bind,最后 unbind 时会执行 destroy 吗
IntentService 和 HandlerThread 源码
HashMap 线程不安全的体现
equals 和 hashcode 的区别
方法的重写和重载
重载时传入泛型不同的 list,会有问题吗
泛型通配符的使用,存入本身类对象会出问题吗
同一对象的两个锁,分别执行 wait 和 notify,代码执行顺序
本地广播可以跨进程接受吗
自己设计实现本地广播功能
handler 源码
message 的 next 方法哪些地方调用到(获取下一 message、消息池)
延时处理 msg 时,native 层做了什么
handler 构造中传入 callback,该接口的 handlerMessage 方法的返回值有何用处
EventBus 中,父类对象和子类对象同时注册,有什么问题
EventBus 是运行时注解还是编译时注解
Dalvik 和 ART 的区别
B 站弹幕的源码
Mediaplayer 如何实现音画同步
a 奇异
Handler 的 postDealy 中的 runnable 何时添加
onSaveInstanceState 调用的时机,其中系统保存了什么,与 onRestore..是成对执行吗
SparseArray 和 ArrayMap 源码和区别
线程池的饱和策略
Activity 的各种启动模式和 flag、对应生命周期
okhttp 线程池源码
runnable 和 callable 区别
处理注解的时机(运行时和编译时)
如何封装播放器
播放器各状态的处理
t 条
算法:递增二维数组查找
mvc、mvp 和 mvvm 的具体使用和区别
mvvm 不用 databinding 如何实现
glide 和 imageloader 区别
glide 如何做到生命周期绑定
安卓中常见的内存泄露
安卓中常见的 oom、如何避免
merge、include 和 viewstub 的使用
如何实现即使通讯
t 探
okhttp 拦截器的作用和好处
自定义拦截器添加的位置
okhttp 连接复用原理
rxjava 各操作符、map 和 flatmap 却别
rxjava 如何线程调度、原理
glide 源码
手写实现图片加载
ijkPlayer 源码
事件分发
w 吧
fragment 的 begin..方法在做什么
commit 和 commitAllowStateLoss 有何区别
LinkedHashMap 实现原理(单链表还是双链表)
HashMap 扩容的具体操作
Handler 源码,消息轮询会一直进行吗
自定义 View,子 View 决定父 View 的大小
rxJava 操作符,map 和 flatmap 的区别
volatile 操作符的作用
tcp 三次握手和四次挥手
tcp 数据丢失怎么处理,滑动窗口
播放器丢帧怎么处理
im 长连接如何实现
okhttp 连接复用如何实现
jvm 内存模型、垃圾回收
如何判断对象是否存活
threadLocal 作用和原理
diskLruCache 的使用和源码
m 蚁金服
父类 static 方法能否被子类继承、重写
普通内部类和静态内部类的区别
非安卓方法实现线程之间通信
发生异常时,synchroized 和 lock 的区别
jvm 内存模型
AsyncTask 一个对象可以重复执行吗
Handler 源码
handler 的 poistDealy 源码
view 的绘制流程
执行 requestLayout 时,draw 方法执行吗
java 和 js 互调及优化
播放器编码解码
弹幕流的处理
如何做单元测试
编译时和运行时
okhttp 连接复用原理
SQLite 批量插入和查询,如何优化
最后,面试前该准备哪些资源复习?
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自
己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《Android 开发七大模块核心知识笔记》
《960 全网最全 Android 开发笔记》
评论