死锁条件:
1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。 4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。这样就形成了一个等待环路。
集合相关:
ArrayList: 加载因子:1, 1.5倍 + 1 默认容量 10
HashMap:加载因子:0.75, 2倍 默认容量 16
HashSet:加载因子:0.75, 2倍 默认容量 16
SparseArray:不大于4,扩容到8,大于就直接一倍
设计模式
BitMapFatory:工厂模式
Lifecycle:观察者模式
Rxjava,OKHttp:责任链
Context:装饰器模式
Adapter:适配器模式
AlertDialog:构造者模式。
LayoutInflater.from():WindowManagerGlobal单例模式
静态变量
成员内部类中不能存在任何static的变量和方法;
成员内部类是依附于外围类的,所以只有先创建了外围类才能够创建内部类。
final:变量、类、方法的修饰符,被final修饰的类不能被继承,变量或方法被final修饰则不能被修改和重写。
finally:异常处理时提供finally块来执行清除操作,不管有没有异常抛出,此处代码都会被执行。如果try语句块中包含return语句,finally语句块是在return之后运行;
finalize:Object类中定义的方法,若子类覆盖了finalize()方法,在在垃圾收集器将对象从内存中清除前,会执行该方法,确定对象是否会被回收