# Android_QA **Repository Path**: lengyueming/Android_QA ## Basic Information - **Project Name**: Android_QA - **Description**: Android 面试、笔试题集锦(赋答案,持续更新 ing~) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-01-15 - **Last Updated**: 2021-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android_QA 2020 年 10 月 27 重磅更新: 最真实的 Android 面经,最详细的面试回答,我都给你准备好啦! 几大公司面试问题:[https://juejin.im/post/6878902981400625160](https://juejin.im/post/6878902981400625160) 里面都备注了**回答要点**! 最重要的,遇到这些面试题**该如何回答**我都给你写好了,我愿称之为最强口水话。 ✨✨✨ Android 面试必备 --- 口水话系列 ✨✨✨ > 何为口水话呢? > > 就是面试官问你相关问题的时候,你应该如何说的话。 > > 有没有遇到这样的场景,明明面试官问我的问题我会,我也看过甚至我自己也写过相关博客,但是在回答的时候还是支支吾吾说不清楚,或者不分轻重想到啥就说啥。 > > 口水话专门用来解决这个问题,它不同于一般博客语言琐碎,而是语言精炼,突出重点,以沟通的方式而非说教的形式去阐述问题。 详细见:[https://github.com/Omooo/Android-Notes](https://github.com/Omooo/Android-Notes) **这一次,轻松拿下 Android 面试!** ## Java 部分(一)基础知识点 1. [Java中 == 和 equals 和 hashCode 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_1) 2. [int、char、long 各占多少字节数](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_2) 3. [int 和 Integer 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_3) 4. [谈谈对Java多态的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_4) 5. [String、StringBuffer、StringBuilder的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_5) 6. [什么是内部类?内部类的作用](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_6) 7. [抽象类和接口的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_7) 8. [抽象类的意义](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_8) 9. [抽象类与接口的应用场景](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_9) 10. [抽象类是否可以没有方法和属性?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_10) 11. [接口的意义](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_11) 12. [泛型中的extends和super的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_12) 13. [父类的静态方法能否被子类重写?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_13) 14. [进程和线程的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_14) 15. [final、finally、finalize的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_15) 16. [序列化的方式](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_16) 17. [Serializable 和 Parcelable 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_17) 18. [静态属性和静态方法是否可以被继承?是否可以被重写?以及原因。](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_18) 19. [静态内部类的设计意图](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_19) 20. [成员内部类、静态内部类、方法内部类(局部内部类)和匿名内部类的理解,以及项目中的应用](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_20) 21. [谈谈对kotlin的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_21) 22. [闭包和局部内部类的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_22) 23. [String转换成Integer的方式以及原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_23) 24. [面向对象思想](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_24) 25. [对象拷贝的理解?深拷贝、浅拷贝的区别?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_25) 26. [Enumeration 和 Iterator 的区别?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_base_26) 27. ## Java 部分(二)高级知识点 1. [哪些情况下的对象会被垃圾回收机制处理掉?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_1) 2. [讲一下常见的编码方式?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_2) 3. [UTF-8编码中中文占几个字节,int型几个字节?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_3) 4. [静态代理和动态代理的区别,什么场景使用?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_4) 5. [Java的异常体系](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_5) 6. [谈谈你对解析与分派的认识](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_6) 7. [修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_7) 8. [Java中实现多态的机制是什么?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_8) 9. [如何将一个Java对象序列化到文件里?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_9) 10. [说说你对Java反射的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_10) 11. [说说你对Java注解的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_11) 12. [说说你对依赖注入的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_12) 13. [说一下泛型原理,并举例说明](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_13) 14. [ Java中String的了解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_14) 15. [String为什么要设计成不可变的?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_15) 16. [Object类的equal和hashCode方法重写,为什么?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_16) 17. [为什么Java里的匿名内部类只能访问final修饰的外部变量?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_17) 18. [Synchronized](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_18) 19. [volatile](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_19) 20. [类加载流程双亲委托机制](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_advance_20) ## Java 部分(三)数据结构 1. [常用数据结构简介](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_structure_1) 2. [并发集合了解哪些?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_structure_2) 3. [HashMap](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_structure_3) ## Java 部分(四)线程、多线程和线程池 1. [开启线程的三种方式?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_1) 2. [线程和进程的区别?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_2) 3. [为什么要有线程,而不是仅仅用进程?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_3) 4. [run() 和 start() 方法的区别?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_4) 5. [如何控制某个方法允许并发访问线程的个数?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_5) 6. [在 Java 中 wait() 和 sleep() 方法的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_6) 7. [谈谈 wait/notify 关键字的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_7) 8. [什么导致线程阻塞?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_8) 9. [线程如何关闭?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_9) 10. [讲一下 Java 中的同步的方法](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_10) 11. [数据一致性如何保证?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_11) 12. [如何保证线程安全?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_12) 13. [如何实现线程同步?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_13) 14. [两个进程同时要求读写,能不能实现?如何防止进程同步?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_14) 15. [线程间操作 List](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_15) 16. [Java 中对象的生命周期](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_16) 17. [说说线程池](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_17) 18. [并发编程面临的挑战有哪些?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#java_thread_18) 19. ## Android 部分(一)基础知识点 1. [四大组件是什么?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_1) 2. [四大组件的生命周期和简单用法](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_2) 3. [Context的理解?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_3) 4. [AsyncTask详解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_4) 5. [Android虚拟机以及编译过程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_5) 6. [进程保活方案](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_6) 7. [Android 消息机制](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_7) 8. [Window、Activity、DecorView以及ViewRoot之间的关系](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_8) 9. [Android事件分发机制](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_9) 10. [dp、sp、px的理解以及相互转换](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_10) 11. [RelativeLayout和LinearLayout在实现效果同等的情况下使用哪个?为什么?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_11) 12. [布局相关的 \、\ 控件作用及实现原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_12) 13. [Fragment详解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_13) 14. [Json、XML](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_14) 15. [Assets目录与res目录的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_15) 16. [View视图绘制过程原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_16) 17. [解决滑动冲突的方式?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_17) 18. [APP Build过程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_18) 19. [Android利用scheme协议进行跳转](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_19) 20. [MVC、MVP](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_20) 21. [SurfaceView](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_21) 22. [HandlerThread](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_22) 23. [IntentService](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_23) 24. [谈谈你对Application类的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_24) 25. [Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_25) 26. [SharedPreference在使用过程中有什么注意点?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_26) 27. [SQLite有哪些可以优化的地方?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_27) 28. [嵌滑滑动机制](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_28) 29. [RecyclerView 优化](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_base_29) ## Android 部分(二)高级知识点 1. [Android 系统架构](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_1) 2. [Android 各个版本特性](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_2) 3. [Android 系统启动流程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_3) 4. [应用程序进程启动过程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_4) 5. [Activity 状态的保存与恢复](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_5) 6. [Android 动画框架实现原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_6) 7. [requestLayout、onLayout、onDraw、drawChild 区别与联系](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_7) 8. [requestLayout、invalidate、postInvalidate 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_8) 9. [Activity、Window、View 的区别及联系](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_9) 10. [Volley 的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_10) 11. [如何优化自定义 View](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_11) 12. [低版本如何实现高版本 API](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_12) 13. [描述一次网络请求的过程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_13) 14. [HttpUrlConnection 与 OkHttp 的关系](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_14) 15. [Bitmap 的理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_15) 16. [Looper 架构](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_16) 17. [ActivityThread 的工作原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_17) 18. [AMS 的工作原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_18) 19. [WMS 的工作原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_19) 20. [自定义 View 如何考虑机型适配](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_20) 21. [自定义 View 的事件](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_21) 22. [LaunchMode 应用场景](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_22) 23. [SpareArray 原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_23) 24. [ContentProvider 是如何实现数据共享的](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_24) 25. [Service 与 Activity 的通信方式](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_25) 26. [IntentService 原理与作用](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_26) 27. [ApplicationContext 与 ActivityContext 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_27) 28. [SP 是进程同步的嘛?如何做到进程同步?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_28) 29. [谈谈多线程在 Android 中的使用](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_29) 30. [进程和 Application 的生命周期](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_30) 31. [封装 View 时候这么知道 View 的大小?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_31) 32. [RecycleView 原理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_32) 33. [AndroidManifest 的作用和理解](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_33) 34. [Touch 事件流程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_34) 35. [时间分发中的 onTouch 和 onTouchEvent 有什么区别?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_35) 36. [View 和 ViewGroup 分别有哪些与事件分发有关的回掉方法](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_36) 37. [View 的刷新机制](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_37) 38. [View 的绘制流程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_38) 39. [自定义控件原理?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_39) 40. [为什么不能在子线程更新 UI?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_40) 41. [ANR 产生原因是什么?如何定位和修正?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_41) 42. [什么情况下会导致 OOM,如何避免?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_42) 43. [OOM 是否可以 try-catch](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_43) 44. [内存泄露发生的情况?如何避免](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_44) 45. [LruCache 默认缓存大小?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_45) 46. [ContentProvider 的权限管理](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_46) 47. [如何通过广播拦截一条短信](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_47) 48. [广播是否可以请求网络?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_48) 49. [计算一个 View 的嵌套层级?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_49) 50. [Activity 栈](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_50) 51. [Android 线程有没有限制?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_51) 52. [线程池有没有上限?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_52) 53. [有没有尝试简化 Parcelable 的使用?](https://github.com/Omooo/Android_QA/blob/master/Answer.md#android_advance_53) ## 数据结构 1. [线性表]() ## 计算机网络 1. [TCP 和 UDP 的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#net_1) 2. [Http1.1和Http1.0及2.0的区别](https://github.com/Omooo/Android_QA/blob/master/Answer.md#net_2) 3. [DNS解析过程](https://github.com/Omooo/Android_QA/blob/master/Answer.md#net_3) 4. [HTTP请求报文和响应报文](https://github.com/Omooo/Android_QA/blob/master/Answer.md#net_4) 5. [简述HTTP](https://github.com/Omooo/Android_QA/blob/master/Answer.md#net_5) 6.