Android最新面试题总结

前言

每次面试前的准备都是到处查找资料,这次打算记录一下准备过程中的遇到的问题,作为对自己所掌握的知识点的一个总结,查漏补缺,也能让后续的面试更加顺利。本文主要是列出问题,答案也会视情况在后续文章更新。本文的内容后续也会持续更新。

Java篇

  • java多态的实现原理。动态类型绑定相关。
  • volatile关键字作用。内存可见性(jmm的理解),禁止指令重排,无法保证原子性。
  • synchronized关键字作用,实现原理。公平锁/非公平锁,可重入锁/不可重入锁,乐观锁/悲观锁,共享锁/排他锁。锁升级。
  • 死锁的概念,什么情况下造成死锁。
  • HashMap数据结构,扩容原理,java8版本的链表转红黑树。HashMap的源代码需要熟读,里面有很多经典代码设计。
  • ConcurrentHashMap数据结构,如何get,扩容原理,扩容时其他线程如果感知,CASsynchronized的使用。
  • 线程池。为什么要用线程池。ThreadPoolExecutor的各个参数的具体含义。几种阻塞队列BlockingQueue的使用和区别。线程池的种类以及其对应的参数。
  • join的使用
  • waitsleep的区别
  • Object类有哪些方法
  • CopyOnWriteArrayList如何实现同步
  • 有哪些线程安全的容器类

Jvm篇

  • jvm内存模型。线程共享区,非线程共享区。
  • GC算法。标记-清除,复制算法,标记整理。GC的目的是降低GC频率。
  • GC root如何选取。

Android篇

  • Android事件分发机制。除了view里面的那一套,你知道事件是怎么从点击屏幕传到Activity的吗?IMS的事件处理机制。
  • Activity的生命周期。fragment生命周期。service生命周期。
  • 卡顿的原理。如果做线上卡顿监控,具体如何实现。
  • 如何定位内存泄漏,其实现原理是什么。
  • ANR的概念,如何排查。ANR具体触发的原理(延时消息)。
  • 讲一讲HandlerLooperMessageQueue相关,扩展到ThreadLocal相关。底层的epoll实现监听。消息延时的实现原理,post的实现原理。
  • 如何不压缩情况实现大长图的加载。BitmapRegionDecoder实现区域加载。
  • MVP MVVC架构
  • 热修复。热修复的工作流程,Tinker框架的实现原理,AndFix实现原理,Robust实现原理。各个框架的优劣。
  • 组件化。为什么要组件化?使用组件化的过程中遇到过哪些问题?怎么解决的?
  • 插件化。四大组件的插件化实现原理,资源插件化的实现原理,资源冲突的解决方案。市面上各个插件化框架的实现原理
  • 如何进程保活
  • ListView图片加载错乱的原理和解决方案
  • RecyclerViewListView的区别,性能差异
  • LRUCached原理
  • SparseArray
  • SP是进程同步的吗?如果做到进程同步
  • SurfaceViewGLSurfaceViewTextureViewSurfaceTexture的异同
  • BroadcastReceiverLocalBroadcastReceiver区别
  • Bundle机制
  • apk打包过程
  • apk安装过程
  • 系统开机流程
  • DalvikART区别
  • App是如何做成沙箱化的
  • down move up事件的传递
  • 下拉通知栏对activity生命周期的影响
  • 线上卡顿检测如何做
  • 线上内存泄漏,oom如何检测
  • R8 proguard

Jetpack篇

  • ViewModel在横竖屏切换时为什么不销毁。onRetainNonConfigurationInstance
  • LiveData
  • Room

Android Framework篇

  • Activity的启动流程
  • Service的启动流程
  • BroadcastReceiver的启动流程
  • ContentProvider的启动流程
  • IMS事件监听与分发
  • Android有哪些IPC手段。
  • Binder实现原理。
  • Handler如何实现延时消息的
  • Android帧渲染原理
  • setContentView的流程
  • 进程启动过程

网络篇

  • https如何验证证书的合法性
  • https请求慢的解决方法
  • TCPUDP区别与应用
  • SocketWebsocket的区别与应用

三方框架篇

  • okhttp如何处理网络缓存的。有哪些拦截器
  • EventBus实现原理
  • RxJava
  • Glide Fresco对比
  • Retrofit实现原理

设计模式篇

  • 单例模式。懒汉式,恶汉式,双重校验,静态内部类,枚举。手写单例模式。
  • 手写观察者模式
  • Android系统哪些地方用到了设计模式

你可能感兴趣的:(Android最新面试题总结)