摘要:
一、OkHttp框架流程 整个流程中最重要的两部分是Dispatcher和Interceptor。 Dispatcher事件分发,分为同步队列和异步列两种分发模式: 同步请求执行过程指在同步队列中添加请求事件 --> 移除请求事件 --> 执行请求事件; 异步分发指在Dispatcher中有一个线程 阅读全文
摘要:
1. Android 中动画分类 逐帧动画; 补间动画; 属性动画; 过渡动画; 2. 动画机制 1. 逐帧动画 逐帧动画也叫Drawable Animation,在Android中逐帧动画实现是通过将动画素材按帧渲染,就是开发可以指定每帧动画的图片和持续时间。 2. 补间动画 与逐帧动画不同,补间 阅读全文
摘要:
一、线程调度方案 线程优先级nice值。 cgroup线程分组策略。 二、线程优先级nice值 nice值是在Process类中定义的。 nice值越小,优先级越高。 THREAD_PRIORITY_DEFAULT = 0。 线程优先级具有继承性。 Android中UI线程的优先级是TTHREAD_ 阅读全文
摘要:
一、屏幕尺寸 屏幕尺寸是指对角线长度,1英寸等于2.54厘米。 Android设备中常见尺寸有:2.8、3.5、3.7、4.2、5.0、5.5、6.0等。 二、屏幕分辨率 屏幕分辨率是指纵横向的像素点,1px=1像素,px是pixel。分辨率表示是纵向x横向,即:1920x1080,就是纵向(高)1 阅读全文
摘要:
一、背景 《Java虚拟机规范》尝试定义一种Java内存模型(Java Memory Model)来屏蔽各种硬件和操作系统访问内存的差异,在不同平台访问内存方式一致。 二、内存模型 Java内存模型就是定义访问各种变量的规则,也就是说关注Java虚拟机想内存存储变量和从内存读取变量的细节。 1. 主 阅读全文
摘要:
一、HashMap HashMap底层是通过数组+链表实现的,KV都可以为NULL,线程不安全; 初始size为16,扩容:newsize = oldsize * 2,size一般为2的n次幂; HashMap扩容针对整个Map,每次扩容后,需要对数组中的元素重新计算位置,再重新插入; HashMa 阅读全文
摘要:
一、死锁是什么 在多线程环境下,两条或者多条线程相互持有一些资源,由于竞争资源关系,导致线程堵塞,需要其他线程释放资源才能继续运行。这种情况就是死锁。 比如:ABA问题 二、检测死锁 1. jps 工具 jps(Java virtual machine process status tool)是JD 阅读全文
摘要:
一、代理模式是什么? 代理是指为其它对象提供的一种代理,用以对这个对象访问的控制。通俗说就是代替别人去做我们想做的事件。 二、静态代理 抽象类: 1 public abstract class BaseObject { 2 3 protected abstract void operation(); 阅读全文
摘要:
一、反射机制定义 Java反射机制就是在程序运行状态中,对于任意一个类,都能知道这个类的所有的属性和方法;对于任意一个对象,都能任意的调用对象中属性和方法;这种动态获取类信息以及动态调用对象中任意的属性和方法的功能就是Java的反射机制。 在Java中使用ClassLoader类动态装载Class文 阅读全文
摘要:
一、锁优化技术 JDK5之后,在多线程并发上实现了很多锁优化技术,分别是自适应自旋锁、锁消除、锁膨胀、轻量级锁、偏向锁。 二、自适应的自旋锁 自旋锁是其他线程获取持有锁的线程的锁时,让尝试获取锁的线程“忙循环”一会,等待持有锁的线程释放锁。如果,在忙循环结束后,线程依然获取不到锁,线程进入堵塞等待。 阅读全文