所谓 面试造飞机, 入职拧螺丝
。 这句话一点也不假, 面试时的技术不仅仅 是 要学会用, 还得要知其原理。懂其原理,才能区分其技术水平, 而作为android开发的我们, java作为我们的开发语言。 所以面试官往往会问一些java底层的原理。这其中包括, java 多线程, 各种各样的锁机制, 以及cas, 原子性 的问题。
最近我在学习了这门课程后,发现确实还不错。对以后的面试的帮助还是蛮不错的。
每天掌握一点点, 让自己不断的进步。
2020.4.2(View)
最近跟同事聊了一下View的面试题, 看看你能回答得出来吗?
1. MeasureSpec的原理是什么
2. 自定义View 和 自定义ViewGroup的区别
3. onMeasure , onLayout, onDraw的调度流程是怎么样的
4. 为什么要进行懒加载
5. 什么时候的测量模式是UNSPECIFIED
2020.3.25(网络优化)
在android 开发中,网络层的优化,你能想到哪些方案?
我能想到的网络层的优化有:
HttpDns
Etag
Gzip
Protocol buffer
2020.3.18(drawable)
你知道drawable有哪些分类吗?
你知道下面这些drawable的具体使用场景吗 ?
BitmapDrawable
ShapeDrawable
LayerDrawable
StateListDrawable
LevelListDrawable
TransitionDrawable
InsetDrawable
ScaleDrawable
ClipDrawable
2020.3.7(启动模式)
android 里面的启动模式有哪几种
针对每种启动模式的入栈出栈是怎么个情况
如何让启动的activity 与当前的页面是在同一个任务栈里面
每一种启动模式的启动会回调哪些生命周期方法
TaskAffinity的作用是什么
2020.3.2(ANR)
什么是 ANR
什么情况下会发生ANR
ANR在四大组件中分别是在几秒中会发生ANR
如何避免ANR
针对ANR这种问题如何去定位问题的所在
2020.2.17(WebView)
关于WebView的性能优化理解了多少
WebView 里面的WebViewClient, WebSetting, WebChromeClient分别的作用是什么
android 与Js 如何交互
JsBridge这种第三库是否了解
2020.2.13(线程池)
1. 常见的线程池有哪些
2. 线程池的原理
3. 线程池的任务拒绝策略有哪些
2020.2.12(OkHttp)
1. OkHttp的主线流程是什么
2. OkHttp里面用的设计模式有哪些
3. OkHttp里面的构建者模式都有哪些功能
4. OkHttp里面的责任链模式理解了多少
5. OkHttp里面的线程池用的是哪一种
2020.2.10(JMM)
谈谈你对java内存模型的理解
synchronized 和 volatile的区别
为什么后者是属于轻量级r
2020.2.8(View)
为什么在Activity的oncreate里面直接获取View的宽高为零
有可以些方法可以解决这个问题,能正确的得到View宽高
而每一种的解决方案的背后原理是什么?
**2020.2.7 (Proxy)
kotlin 里面的代理模式
by lazy 这种写法 在源码里面是怎么实现的?
掌握了by lazy的原理之后, 那如何写一个Delegate
2020.2.6 (Handler)
1月28号写了关于Handler的面试题
Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么
2020.2.5 (插件化)
插件化如何实现?
你所了解的插件化实现方式有哪几种?
上一道面试题讲了classLoader, 那如何去加载插件里面类,和资源
2020.2.4 (ClassLoader)
Java 和 Android 的ClassLoader分别有哪些
Android 里面的PathClassLoader 和 DexClassLoader的使用场景
双亲委派机制
什么情况下会触发类加载
如果New一个对象会执行哪几个步骤
2020.2.3 (IOC)
ButterKnife作为一种IOC的框架
那ButterKnife是怎么实现的?
包括如何注入控件的?
如何注入事件的?
为什么需要用到R2文件?
为什么控件前面不能用private 和static修饰
如何通过手写生成R2文件
2020.2.2 (Tinker)
对于tinker热修复的原理你了解吗?
tinker热修复为什么需要重启才生效
如果只更新了资源文件 那是否还需要重启呢
2020.2.1 (动画)
补间动画 和 属性动画的区别
属性动画实现的原理是什么?
插值器 和 估值器 分别的作用
为什么补间动画移动过后 点击事件还是原来的位置
2020.1.31 (UI)
Activity, View, Window之间三者的关系
View是如何渲染到界面上的
2020.1.30 (UI)
子线程到底能不能更新Ui
为什么子线程更新ui会抛异常
如何做才能让子线程能更新UI
2020.1.29 (Dart)
dart语法的掌握是flutter开发的前提。
dart语言你掌握了吗?
2020.1.28 (Handler)
Handler的创建方式有几种
Handler为什么会引起内存泄漏
Handler, Message, MessageQueue, Looper, ThreadLocal是如何串联起来的
Handler 是如何做到线程间消息通信的
2020.1.27 (HashMap)
HashMap的实现原理,
为什么是头插法,
红黑树,
内部实现是用链表或者数组(不同版本的实现原理不一样)
2020.1.26 (EventBus)
EventBus通过反射是如何实现的
EventBus通过Apt是如何实现的
EventBus是如何达到线程间的切换
EventBus的粘性事件发布是如何实现的
2020.1.25 (Binder)
Binder机制是进程间通信的一种方式,在android 系统的源码中扮演很重要的角色
AMS, PMS, WMS的是如何运用Binder来通信的
bindService中是如何运用Binder的
AIDL的用法你掌握了吗?
关注公众号:
网友评论