<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014611039的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014611039</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014611039]]></copyright><item><title><![CDATA[parcelable 与Sericalizable 区别]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/117136908</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/117136908</guid><author>u014611039</author><pubDate>Sat, 22 May 2021 01:06:31 +0800</pubDate><description><![CDATA[1、作用
Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输，当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢，为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计，这些数据仅在内存中存在，Parcelable是通过IBinder通信的消息的载体。
从上面的设计上我们就可以看出优劣了。
2、效率及选择
Parcelable的性能比Serializ]]></description><category></category></item><item><title><![CDATA[线程池原理]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/117050098</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/117050098</guid><author>u014611039</author><pubDate>Fri, 21 May 2021 17:06:19 +0800</pubDate><description><![CDATA[七个核心参数的含义

参数
			说明
		corePoolSize
			核心池的大小，这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后，默认情况下，线程池中并没有任何线程，而是等待有任务到来才创建线程去执行任务，除非调用了prestartAllCoreThreads()或者prestartCoreThread()方法，从这2个方法的名字就可以看出，是预创建线程的意思，即在没有任务到来之前就创建corePoolSize个线程或者一个线程。默认情况下，在创建了线程池后，线程池中的线程数为]]></description><category></category></item><item><title><![CDATA[java作用域]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116933577</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116933577</guid><author>u014611039</author><pubDate>Mon, 17 May 2021 14:57:11 +0800</pubDate><description><![CDATA[作用域
			当前类
			同一package
			子孙类
			其他package
		public
			√
			√
			√
			√
		protected
			√
			√
			√
			×
		default
			√
			√
			×
			×
		private
			√
			×
			×
			×
		
]]></description><category></category></item><item><title><![CDATA[2021-03-17 flutter 报错总结]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/114917279</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/114917279</guid><author>u014611039</author><pubDate>Mon, 17 May 2021 13:33:37 +0800</pubDate><description><![CDATA[Flutter 报错总结



1.登录时请求报错

DioError [DioErrorType.DEFAULT]: Error on line 1, column 11: Invalid media type: expected /[^()&lt;&gt;@,;:"\\/[\]?={} \t\x00-\x1F\x7F]+/. 登录出错


增加 Options option = Options(method: 'post', responseType: ResponseType.plain);

...]]></description><category></category></item><item><title><![CDATA[事件分发流程及滑动冲突处理]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116870849</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116870849</guid><author>u014611039</author><pubDate>Sun, 16 May 2021 02:20:03 +0800</pubDate><description><![CDATA[activity的分发

从activity的dispatchTouchEvent方法进行源码分析：


 public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            onUserInteraction();
        }
        if (getWindow().superDispatchTouchEvent(ev]]></description><category></category></item><item><title><![CDATA[sychronized和Lock区别]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116698291</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116698291</guid><author>u014611039</author><pubDate>Fri, 14 May 2021 14:24:40 +0800</pubDate><description><![CDATA[Sychronized
			Lock
		类型
			java的一个关键字,也就是说java语言内置的特性,wait 、notify、notifyAll
			java.util.concurrent.locks包下常用的类,可以使用Condition进行线程之间的调度，
		锁的释放
			会自动释放锁(1.执行完同步代码块会释放锁,2线程执行过程中发生异常会释放锁,不会出现死锁)
			需要在finally中手工释放lock.unlock(),否则容易造成线程死锁,使用时记住try ca...]]></description><category></category></item><item><title><![CDATA[hashmap1.8优化后的区别   以及和ConcurrentHashMap 的区别]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116739896</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116739896</guid><author>u014611039</author><pubDate>Thu, 13 May 2021 16:30:53 +0800</pubDate><description><![CDATA[hashmap


			时间复杂度
			空间复杂度
		数组
			对于指定下标的查找，时间复杂度为O(1)；通过给定值进行查找，需要遍历数组，逐一比对给定关键字和数组元素，时间复杂度为O(n)，当然，对于有序数组，则可采用二分查找，插值查找，斐波那契查找等方式，可将查找复杂度提高为O(logn)；对于一般的插入删除操作，涉及到数组元素的移动，其平均复杂度也为O(n)
			
		线性链表
			对于链表的新增，删除等操作（在找到指定操作位置后），仅需处理结点间的引用即可，时间复杂度为O(1)，而...]]></description><category></category></item><item><title><![CDATA[RecyclerView的复用和回收机制]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116639643</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116639643</guid><author>u014611039</author><pubDate>Tue, 11 May 2021 16:19:21 +0800</pubDate><description><![CDATA[ListView复用及回收

AbsListView.RecycleBin

RecycleBin维护了两种类型列表

一种用于保存屏幕上可见的view,一种用于缓存滚动出屏幕的view

滚动时,子view完全滑出屏幕,保存在RecycleBin,子View进入屏幕,从RecycleBin中获取缓存view,进行数据绑定



RecyclerView 复用及回收

四级缓存机制

内部有Recycler内部类

onCreateViewHolder() onBindViewHolder()

复用机..]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/116257546</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/116257546</guid><author>u014611039</author><pubDate>Thu, 29 Apr 2021 09:22:38 +0800</pubDate><description><![CDATA[1.饿汉模式


public class SingleTon{
    private static Singleton INSTANCE= new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return INSTANCE;
    }    
}

以时间换空间

2.静态内部类


public class SingleTon{
    private Single]]></description><category></category></item><item><title><![CDATA[Android如何避免OOM总结]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/91389561</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/91389561</guid><author>u014611039</author><pubDate>Mon, 10 Jun 2019 18:05:58 +0800</pubDate><description><![CDATA[前面介绍了一些基础的内存管理机制以及OOM的基础知识，那么在实践操作当中，有哪些指导性的规则可以参考呢？归纳下来，可以从四个方面着手，首先是减小对象的内存占用，其次是内存对象的重复利用，然后是避免对象的内存泄露，最后是内存使用策略优化。

1）使用更加轻量的数据结构

例如，我们可以考虑使用ArrayMap/SparseArray而不是HashMap等传统数据结构，下图演示了HashMap的简要工...]]></description><category></category></item><item><title><![CDATA[面试]]></title><link>https://blog.youkuaiyun.com/u014611039/article/details/90899502</link><guid>https://blog.youkuaiyun.com/u014611039/article/details/90899502</guid><author>u014611039</author><pubDate>Wed, 05 Jun 2019 11:27:02 +0800</pubDate><description><![CDATA[apply和commit区别 

service怎么停止

有序广播

onreceive是主线程吗

hashmap  红黑树

插件化组件化



数据库存储的数据是什么格式

共享参数 里面是不是线程安全 以进程通信 但是谷歌不建议 SP使用上的优化 把复杂数据存放到多个sp文件内 还有里面的容灾是会创建一个新的文件临时保存上一次的数据 加载一个sp文件后会将数据保存到内存中...]]></description><category></category></item></channel></rss>