android面试题?

1.Android 项目中 asset 目录和 res 目录有什么区别
res/raw和assets的相同点:
https://www.jianshu.com/p/01a595206009

2.面向对象的特征,并举例说明面向对象的过程
特征:封装 继承 多态
https://blog.csdn.net/qq_39238370/article/details/103245060

3.如何结束一个正在运行的线程
https://blog.csdn.net/bin470398393/article/details/79286365
https://blog.csdn.net/qq_17312239/article/details/83820913

4.简述 MVC 和 MVP,并说一下 MVP 的优点
https://mp.weixin.qq.com/s/KA2gEWQ5yLOaDO-cnT31Zg

5.如何获取某个 View 的大小并动态改变 View 的大小

6.join()、wait()、interrupt()

7.二维数组旋转

8.String、StringBuilder、StringBuffer 区别
https://www.jianshu.com/p/64519f1b1137

9.ArrayMap、HashMap、SparseArray 原理
https://www.jianshu.com/p/10761dfff55e

10.Fragment 添加方式,add、replace、show 区别

11.volatile 关键字作用
在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。

12 HTTP 版本之间区别
可以看一下阮一峰老师的文章
http://www.ruanyifeng.com/blog/2016/08/http.html

13.invalidate()、requestLayout() 区别
https://www.jianshu.com/p/5ec0f278e0a3

14.View 绘制流程

15.事件分发机制
https://www.gcssloop.com/customview/dispatch-touchevent-theory

16.渲染优化
https://www.jianshu.com/p/81c9f7cfe733

17.ArrayList 怎么实现线程安全

18.Android 线程间通讯方式有哪些?
https://blog.csdn.net/liuxingyuzaixian/article/details/78893392

19.类B继承A,A、B两个类中都有静态变量、成员变量、静态代码块、构造方法执行顺序是什么?

20.Java代码执行时内存状况

21.Activity生命周期其他函数

22.View什么时候绘制完成?

23.如何获取一个View的尺寸?