这个不用解释就知道重要吧,其实很多公司会笔试一些Java题,我这里就总结一些比较重要的知识,这篇博客会持续更新
基础知识
1、进程间通讯即Message,Handler,Message Queue,Looper之间的关系:
线程中必须调用Looper.prepare(),并且只能调用一次,才能创建handler,Looper.prepare()来在本地保存一个looper对象,而looper对象唯一对应一个messagequeue,也就是说,每个线程只有有个looper一个messagequeue,handler个数不限。在我们可以在不同的线程中通过handler改变messagequeue的内容。然后通过looper的loop方法(是一个无限的循环处理messagequeue的内容,这是在调用looer.loop()方法的线程中。也就是目标线程
Java基础
面向对象三大基本特性,五大基本原则
三大特性是:数据抽象,继承,多态(多形性) (ps《thinking in Java》)
引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针
五大基本原则:
- 单一职责原则SRP(Single Responsibility Principle)
- 开放封闭原则OCP(Open-Close Principle)
- 替换原则(the Liskov Substitution Principle LSP)
- 依赖原则(the Dependency Inversion Principle DIP) 具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,
- 接口分离原则(the Interface Segregation Principle ISP)
接口的意义
规范(依赖原则)、扩展(依赖原则、替换原则,接口分离原则)、回调(多形性)
string stringbuilder stringbuffer
String位一个final char数组,线程不安全
Sringbuffer是线程安全
stringbuilder线程不安全。
activity 的生命周期
oncreat()
onstart()
onresume()
onpause()
onstop()
ondestiory()
view的绘图流程
onmesure()
onlayout()
ondraw()