- 博客(32)
- 资源 (5)
- 收藏
- 关注

原创 Android AsyncTask的源码分析
AsyncTask的源码分析,以及相关设计模式模板方法模式,策略模式,Half-Sync/Half-Async模式。
2016-04-08 10:20:28
742

原创 Web页面的请求历程
本文试图通过一个例子总结计算机网络相关知识,该例子来源于《计算机网络——自顶向下方法》一书,本文对其中细节加了补充。关键词:DHCP, DNS, ARP, TCP, HTTP
2016-03-22 00:25:44
4101
2

原创 Java多线程—Executor框架
本文简要介绍了Java多线程中的Executor框架,包括Runnable、Callable、Future、RunnableFuture、FutureTask、Executor、ExecutorService以及这些接口与类之间的关系。
2015-07-05 01:57:41
1391

原创 android.app.Fragment$InstantiationException的原因分析
每个Fragment必须要有一个无参构造方法,这样该Fragment在Activity恢复状态的时候才可以被实例化。强烈建议,Fragment的子类不要有其他含参构造方法,因为这些构造方法在Fragment重新实例化时不会被调用。取而代之的方式是,通过setArguments(Bundle)设置参数,然后通过getArguments获得参数。
2015-06-25 00:51:18
4838

原创 Rxjava分析—Subject
Subject在ReactiveX是作为observer和observerable的一个bridge或者proxy。因为它是一个观察者,所以它可以订阅一个或多个可观察对象,同时因为他是一个可观测对象,所以它可以传递和释放它观测到的数据对象,并且能释放新的对象。一共有四种为不同用途而设计的Subject,分别为AsyncSubject、BehaviorSubject、PublishSubject。
2015-04-02 00:13:55
10399
1

原创 RxJava概述
ReactiveX是利用可观察数据流实现异步编程的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。RxJava是Reactive Extensions的Java VM实现,它是一个使用可观察序列编写异步和事件驱动程序的库。它扩展了观察者模式以支持数据和事件序列,并且加入操作符Operator。它将你的注意从低级别线程,线程同步,线程安全和并发数据对象这些复杂问题中转移。
2015-03-30 23:54:34
1093

原创 Activity内部Handler引起内存泄露的原因分析
Since this Handler is declared as an inner class, it may prevent the outer class from being garbage collected. If the Handler is using a Looper or MessageQueue for a thread other than the main thread, then there is no issue. If the Handler is using the Loo
2015-01-22 01:18:21
2734

原创 Android依赖注入的实现
通过Java注解代替常规的findViewById()初始化View,和setOnClickListener()设置监听器。
2015-01-12 00:39:59
1349
2
原创 Java Concurrency — 原子变量类
基于锁的同步机制,在频繁地发生锁的竞争时,上下文切换和调度开销可能远大于工作开销。volatile变量更轻量级,但是不能用于构建原子化复合操作,例如i++。而原子变量类就解决了上下文切换和调度问题,并且基于现代处理器提供的原子化读-写-改指令,如比较并交换(compare-and-set),实现了原子化复合操作。
2015-10-25 14:05:47
759
原创 Rxjava分析—Subject
Subject在ReactiveX是作为observer和observerable的一个bridge或者proxy。因为它是一个观察者,所以它可以订阅一个或多个可观察对象,同时因为他是一个可观测对象,所以它可以传递和释放它观测到的数据对象,并且能释放新的对象。一共有四种为不同用途而设计的Subject,分别为AsyncSubject、BehaviorSubject、PublishSubject。
2015-10-24 19:00:41
1473
原创 Java反射机制总结
Jav使用某个类时,需要通过加载、连接、初始化3个步骤来对该类进行初始化。类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。系统中的所有类实际上都是java.lang.Class的实例。Java反射机制就是通过类对应的Class对象在运行时获取类的信息,如类构造方法、方法、成员变量、注解、内部类、外部类、接口、超类Class对象、修饰符、包、类名。
2015-07-04 15:47:51
996
原创 RxJava概述
ReactiveX是利用可观察数据流实现异步编程的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。RxJava是Reactive Extensions的Java VM实现,它是一个使用可观察序列编写异步和事件驱动程序的库。它扩展了观察者模式以支持数据和事件序列,并且加入操作符Operator。它将你的注意从低级别线程,线程同步,线程安全和并发数据对象这些复杂问题中转移。
2015-06-25 23:14:14
1946
原创 Linux执行可执行文件提示No such file or directory的解决方法
Linux操作系统执行可执行文件提示No such file or directory的原因可能是操作系统位数和可执行文件需要的lib库的位数不匹配,此时可以安装对应位数的lib库解决该问题。
2015-06-22 14:13:38
231534
16
原创 C语言数组与指针
一维数组与指针int a[10];int *pa;一维数组的数组名代表的就是该数组第一个元素的地址,所以复制语句pa=&a[0]等价于pa=a。对数组元素a[i]的引用等价于*(a+i)。在计算数组元素a[i]的值时,C语言实际上先将*(a+1)后再进行求值,所以用指针编写的程序比用数组下标编写的程序执行速度快。 数组名和指针之间有一个不同之处,指针是一个变量,pa=a和pa++都是合
2015-06-14 23:14:00
842
原创 android.app.Fragment$InstantiationException的原因分析
每个Fragment必须要有一个无参构造方法,这样该Fragment在Activity恢复状态的时候才可以被实例化。强烈建议,Fragment的子类不要有其他含参构造方法,因为这些构造方法在Fragment重新实例化时不会被调用。取而代之的方式是,通过setArguments(Bundle)设置参数,然后通过getArguments获得参数。
2015-04-24 21:47:36
1290
1
原创 Java多线程—Executor框架概述
本文简要介绍了Java多线程中的Executor框架,包括Runnable、Callable、Future、RunnableFuture、FutureTask、Executor、ExecutorService以及这些接口与类之间的关系。
2015-03-14 13:53:48
664
原创 设计模式—结构型模式
结构型模式涉及到如何组合类和对象以获得更大的结构。类结构型模式采用继承机制来组合接口或实现。对象结构型模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性,而这种机制用静态类组合是不可能实现的。
2015-02-05 00:55:53
473
原创 设计模式—行为模式
1. Command模式对象行为型模式意图将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。效果:Command模式将调用操作的对象与知道如何实现该操作的对象耦合。2. Strategy模式对象行为型模式意图定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。3. Templ
2015-02-05 00:01:31
621
原创 Java反射机制总结
当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化3个步骤来对该类进行初始化。类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。系统中的所有类实际上都是java.lang.Class的实例。在Java中获得Class对象通常有如下3种方式。1. 使用Class.forName(String clazzName)静
2015-01-11 21:43:32
552
代码整洁之道.(美)马丁
2017-09-12
《Windows 程序设计》
2013-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人