- 博客(11)
- 收藏
- 关注
原创 parcelable 与Sericalizable 区别
1、作用Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过IBinder通信的消息的载体。从上面的设计上我们就可以看出优劣了。2、效率及选择Parcelable的性能比Serializ
2021-05-22 01:06:31 228
原创 线程池原理
七个核心参数的含义参数 说明 corePoolSize 核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,除非调用了prestartAllCoreThreads()或者prestartCoreThread()方法,从这2个方法的名字就可以看出,是预创建线程的意思,即在没有任务到来之前就创建corePoolSize个线程或者一个线程。默认情况下,在创建了线程池后,线程池中的线程数为
2021-05-21 17:06:19 69
原创 java作用域
作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × ×
2021-05-17 14:57:11 78
原创 2021-03-17 flutter 报错总结
Flutter 报错总结1.登录时请求报错DioError [DioErrorType.DEFAULT]: Error on line 1, column 11: Invalid media type: expected /[^()<>@,;:"\\/[\]?={} \t\x00-\x1F\x7F]+/. 登录出错增加 Options option = Options(method: 'post', responseType: ResponseType.plain);...
2021-05-17 13:33:37 804
原创 事件分发流程及滑动冲突处理
activity的分发从activity的dispatchTouchEvent方法进行源码分析: public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUserInteraction(); } if (getWindow().superDispatchTouchEvent(ev
2021-05-16 02:20:03 209
原创 sychronized和Lock区别
Sychronized Lock 类型 java的一个关键字,也就是说java语言内置的特性,wait 、notify、notifyAll java.util.concurrent.locks包下常用的类,可以使用Condition进行线程之间的调度, 锁的释放 会自动释放锁(1.执行完同步代码块会释放锁,2线程执行过程中发生异常会释放锁,不会出现死锁) 需要在finally中手工释放lock.unlock(),否则容易造成线程死锁,使用时记住try ca...
2021-05-14 14:24:40 115
原创 hashmap1.8优化后的区别 以及和ConcurrentHashMap 的区别
hashmap 时间复杂度 空间复杂度 数组 对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n) 线性链表 对于链表的新增,删除等操作(在找到指定操作位置后),仅需处理结点间的引用即可,时间复杂度为O(1),而...
2021-05-13 16:30:53 249
原创 RecyclerView的复用和回收机制
ListView复用及回收AbsListView.RecycleBinRecycleBin维护了两种类型列表一种用于保存屏幕上可见的view,一种用于缓存滚动出屏幕的view滚动时,子view完全滑出屏幕,保存在RecycleBin,子View进入屏幕,从RecycleBin中获取缓存view,进行数据绑定RecyclerView 复用及回收四级缓存机制内部有Recycler内部类onCreateViewHolder() onBindViewHolder()复用机..
2021-05-11 16:19:21 261
原创 单例模式
1.饿汉模式public class SingleTon{ private static Singleton INSTANCE= new Singleton(); private Singleton(){} public static Singleton getInstance(){ return INSTANCE; } }以时间换空间2.静态内部类public class SingleTon{ private Single
2021-04-29 09:22:38 51
转载 Android如何避免OOM总结
前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。1)使用更加轻量的数据结构例如,我们可以考虑使用ArrayMap/SparseArray而不是HashMap等传统数据结构,下图演示了HashMap的简要工...
2019-06-10 18:05:58 288
原创 面试
apply和commit区别 service怎么停止有序广播onreceive是主线程吗hashmap 红黑树插件化组件化数据库存储的数据是什么格式共享参数 里面是不是线程安全 以进程通信 但是谷歌不建议 SP使用上的优化 把复杂数据存放到多个sp文件内 还有里面的容灾是会创建一个新的文件临时保存上一次的数据 加载一个sp文件后会将数据保存到内存中...
2019-06-05 11:27:02 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人