1、两数之和
设计原则:用抽象构建框架,用实现扩展细节 单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。
Java框中的AbstractQueuedSynchronizer[AQS队列同步器]框架:有锁同步[睡眠与唤起]
OutOfMemoryError是一种Error类型,OutOfMemoryError extends VirtualMachineError ,此种错误不应该被捕获,友好的退出,并找到问题是比较合理的处理方案。Android中发生OOM常见场景主要有两种
List是个泛型,运行时检查?
在java的java.util.concurrent包中定义,可以看到组要适用于并发,Future本身是一个接口,仅仅是一个接口,一个规范,内部如何实现,如何处理,是需要用户自己操作的,使用Future接口的其实就是想要规范的告诉别人,我这里要定义一些同步等待的框架出来。
Android启动页的背景主要指冷启动时windowBackground配置的背景图,这个阶段业务还未加载,配置的主要用在StartWindow上,与闪屏复用,一来是防止白屏、二来是品牌宣传。最简单的做法是为windowBackground直接配置一张图
volatile[多线程场景、共享变量必加] - 用来修饰变量,告诉编译器每次都从主存中读取,不要对这个变量进行优化,从而保证变量的可见性和访问的有序性【禁止指令重排】,但它并不提供原子性操作,在多线程编程中还需要结合其他同步机制,如互斥锁或信号量。 可见性与Java内存模型