/Android_QA

Android 面试、笔试题集锦(赋答案,持续更新 ing~)

Android_QA

Java 部分(一)基础知识点

  1. Java中 == 和 equals 和 hashCode 的区别
  2. int、char、long 各占多少字节数
  3. int 和 Integer 的区别
  4. 谈谈对Java多态的理解
  5. String、StringBuffer、StringBuilder的区别
  6. 什么是内部类?内部类的作用
  7. 抽象类和接口的区别
  8. 抽象类的意义
  9. 抽象类与接口的应用场景
  10. 抽象类是否可以没有方法和属性?
  11. 接口的意义
  12. 泛型中的extends和super的区别
  13. 父类的静态方法能否被子类重写?
  14. 进程和线程的区别
  15. final、finally、finalize的区别
  16. 序列化的方式
  17. Serializable 和 Parcelable 的区别
  18. 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因。
  19. 静态内部类的设计意图
  20. 成员内部类、静态内部类、方法内部类(局部内部类)和匿名内部类的理解,以及项目中的应用
  21. 谈谈对kotlin的理解
  22. 闭包和局部内部类的区别
  23. String转换成Integer的方式以及原理
  24. 面向对象**
  25. 对象拷贝的理解?深拷贝、浅拷贝的区别?
  26. Enumeration 和 Iterator 的区别?

Java 部分(二)高级知识点

  1. 哪些情况下的对象会被垃圾回收机制处理掉?
  2. 讲一下常见的编码方式?
  3. UTF-8编码中中文占几个字节,int型几个字节?
  4. 静态代理和动态代理的区别,什么场景使用?
  5. Java的异常体系
  6. 谈谈你对解析与分派的认识
  7. 修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?
  8. Java中实现多态的机制是什么?
  9. 如何将一个Java对象序列化到文件里?
  10. 说说你对Java反射的理解
  11. 说说你对Java注解的理解
  12. 说说你对依赖注入的理解
  13. 说一下泛型原理,并举例说明
  14. Java中String的了解
  15. String为什么要设计成不可变的?
  16. Object类的equal和hashCode方法重写,为什么?
  17. 为什么Java里的匿名内部类只能访问final修饰的外部变量?
  18. Synchronized
  19. volatile
  20. 类加载流程双亲委托机制

Java 部分(三)数据结构

  1. 常用数据结构简介
  2. 并发集合了解哪些?
  3. HashMap

Java 部分(四)线程、多线程和线程池

  1. 开启线程的三种方式?
  2. 线程和进程的区别?
  3. 为什么要有线程,而不是仅仅用进程?
  4. run() 和 start() 方法的区别?
  5. 如何控制某个方法允许并发访问线程的个数?
  6. 在 Java 中 wait() 和 sleep() 方法的区别
  7. 谈谈 wait/notify 关键字的理解
  8. 什么导致线程阻塞?
  9. 线程如何关闭?
  10. 讲一下 Java 中的同步的方法
  11. 数据一致性如何保证?
  12. 如何保证线程安全?
  13. 如何实现线程同步?
  14. 两个进程同时要求读写,能不能实现?如何防止进程同步?
  15. 线程间操作 List
  16. Java 中对象的生命周期
  17. 说说线程池
  18. 并发编程面临的挑战有哪些?

Android 部分(一)基础知识点

  1. 四大组件是什么?
  2. 四大组件的生命周期和简单用法
  3. Context的理解?
  4. AsyncTask详解
  5. Android虚拟机以及编译过程
  6. 进程保活方案
  7. Android 消息机制
  8. Window、Activity、DecorView以及ViewRoot之间的关系
  9. Android事件分发机制
  10. dp、sp、px的理解以及相互转换
  11. RelativeLayout和LinearLayout在实现效果同等的情况下使用哪个?为什么?
  12. 布局相关的 <merge>、<viewstub> 控件作用及实现原理
  13. Fragment详解
  14. Json、XML
  15. Assets目录与res目录的区别
  16. View视图绘制过程原理
  17. 解决滑动冲突的方式?
  18. APP Build过程
  19. Android利用scheme协议进行跳转
  20. MVC、MVP
  21. SurfaceView
  22. HandlerThread
  23. IntentService
  24. 谈谈你对Application类的理解
  25. Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?
  26. SharedPreference在使用过程中有什么注意点?
  27. SQLite有哪些可以优化的地方?
  28. 嵌滑滑动机制
  29. RecyclerView 优化

Android 部分(二)高级知识点

  1. Android 系统架构
  2. Android 各个版本特性
  3. Android 系统启动流程
  4. 应用程序进程启动过程
  5. Activity 状态的保存与恢复
  6. Android 动画框架实现原理
  7. requestLayout、onLayout、onDraw、drawChild 区别与联系
  8. requestLayout、invalidate、postInvalidate 的区别
  9. Activity、Window、View 的区别及联系
  10. Volley 的理解
  11. 如何优化自定义 View
  12. 低版本如何实现高版本 API
  13. 描述一次网络请求的过程
  14. HttpUrlConnection 与 OkHttp 的关系
  15. Bitmap 的理解
  16. Looper 架构
  17. ActivityThread 的工作原理
  18. AMS 的工作原理
  19. WMS 的工作原理
  20. 自定义 View 如何考虑机型适配
  21. 自定义 View 的事件
  22. LaunchMode 应用场景
  23. SpareArray 原理
  24. ContentProvider 是如何实现数据共享的
  25. Service 与 Activity 的通信方式
  26. IntentService 原理与作用
  27. ApplicationContext 与 ActivityContext 的区别
  28. SP 是进程同步的嘛?如何做到进程同步?
  29. 谈谈多线程在 Android 中的使用
  30. 进程和 Application 的生命周期
  31. 封装 View 时候这么知道 View 的大小?
  32. RecycleView 原理
  33. AndroidManifest 的作用和理解
  34. Touch 事件流程
  35. 时间分发中的 onTouch 和 onTouchEvent 有什么区别?
  36. View 和 ViewGroup 分别有哪些与事件分发有关的回掉方法
  37. View 的刷新机制
  38. View 的绘制流程
  39. 自定义控件原理?
  40. 为什么不能在子线程更新 UI?
  41. ANR 产生原因是什么?如何定位和修正?
  42. 什么情况下会导致 OOM,如何避免?
  43. OOM 是否可以 try-catch
  44. 内存泄露发生的情况?如何避免
  45. LruCache 默认缓存大小?
  46. ContentProvider 的权限管理
  47. 如何通过广播拦截一条短信
  48. 广播是否可以请求网络?
  49. 计算一个 View 的嵌套层级?
  50. Activity 栈
  51. Android 线程有没有限制?
  52. 线程池有没有上限?
  53. 有没有尝试简化 Parcelable 的使用?

数据结构

  1. 线性表

计算机网络

  1. TCP 和 UDP 的区别
  2. Http1.1和Http1.0及2.0的区别
  3. DNS解析过程
  4. HTTP请求报文和响应报文
  5. 简述HTTP