java
面向对象
object
基本数据类型
int short long
double float
boolean
char
byte
继承extends
单继承
接口 interface
多实现
抽象 abstract
泛型
泛型方法 <>方法
泛型变量 T t,E t ,K k
返回值类型是一个泛型
集合
map
abstractmap、hashmap、sortedmap/treemap、Linkedmap
hashtable
set
hashset、treeset
栈stack先进后出
队列 queue先进先出
线程安全类 synchronized 同步锁
stringbuffer、hashset、synchronizemap
文件读写
读取文件,输入流
inputstream,bufferReader,FileInputStream、
InputstreamReader
RandomAccessReader
数据写入文件,输出流
outputstream
bufferWriter
FileOutputStream
OutStreamWriter
android原生
activity
oncreate、onstart、onresume、onpause、onstop、ondestoty
onpause—onresume
onstop—onrestart
standard、singletask、singletop、singleinstance
taskaffinity亲和性
fragment
onAttach
onCreate
onCreateView
onActivityCreated
onstart
onresume
onpause
onstop
onDestroyView
onDestrory
onDeatch
service
startservice
oncreate
onstartcommond
ondestroy
bindservice
oncreate
onbind
onunbind
ondestroy
contentprovider
sqlite,进程间通信,app读取系统联系人信息
broadCastReceiver
应用内广播 本地广播
全局广播
静态注册
动态注册、需要解注册,避免内存泄漏
android多线程之间的通信方式
主线程、子线程
new Thread,runnable
线程池
AsyncTask 前中后主线程更新UI,
onpre、doinbackground—publishprogress后台执行
onprogressupdate
onpost更新UI
handler sendmessage、sendemptymessage、
post、postdelay、postAtTime、sendMessageAtTime、sendmessagedelay
将消息插入队列(默认按照先后顺序,当然也可以插队)
message持有这个handler
Looper 从头循环这个队列,取出当前排队到时间需要处理的message
也就是执行Loop.loop() 死循环取出消息分发给handler处理
一个线程只有一个Looper(threadlocal单例),
一个Loop只管理一个消息队列Messagequeue,
一个线程可以new 多个handler,即所有handler公用这一个messagequeue
loop() 底层使用了linux pipe/epoll机制,有任务处理任务,没有任务休眠,释放CPU,等待下一次唤醒,不会阻塞主线程。
msg==null ||
when=0 ||
msg.when<when
插入消息队列的第一位
APP常用框架
flutter
kotlin
协程
这个协成并发是不是可以理解成,
如果coroutineScope 里面的多个子协程,依旧是按照顺序从上到下执行,第一个子协程里面有挂起suspend 方法,
会跳出当前执行协程代码块,执行后面的代码,等suspend有返回,继续切回到第一个协程执行。
1、GlobalScope.launch 是非阻塞的 ,可以返回Job
2、runBlocking 是阻塞的
3、多个 withContext 任务是串行的,一般用来切换线程执行不同的任务
4、 多个 async 任务是并行的,async 返回的是一个Deferred,需要调用其await()方法获取结果
5、suspend方法必须写在另一个suspend方法或者协程代码块中 , 并且最终都是在协程中执行
kotlin单例,对比java
饿汉
懒汉
懒汉线程安全
double check 双重判空
静态内部类方式

本文深入探讨了Java面向对象编程、基本数据类型、继承与接口、泛型、集合框架以及线程安全等内容。详细讲解了Android应用生命周期、组件如Activity、Fragment和服务,以及线程间的通信方式如Handler和AsyncTask。同时,提到了Kotlin的协程特性及其在并发中的应用,并对比了Java的单例模式。此外,还涵盖了文件读写、SQLite数据库和ContentProvider在Android中的使用,以及BroadcastReceiver实现进程间通信。

被折叠的 条评论
为什么被折叠?



