原文链接:http://www.orlion.ga/384/ 一、红黑树 1、普通的二叉树有一个问题,当插入的数据是有序的时候,二叉树就是非平衡的了,而对于非平衡树它的快速查找(插入、删除)指定数据项的能力就丧失了。红黑树就是一种解决非平衡树的方法,它是增加了某些特点的二叉搜索树。 2、自顶向下插入 ...
分类:
其他好文 时间:
2016-04-03 23:28:18
阅读次数:
119
原文链接:http://www.orlion.ga/735/ 解释: 如果已有对象的部分内容或功能性发生了改变,但是不需要修改原始对象的结构,那么使用装饰器设计模式最合适 需求: 我们本来有一个UserList类: App.php: 其中outUsers是把UserList保存的所有的用户打印出来, ...
分类:
其他好文 时间:
2016-04-03 23:27:04
阅读次数:
162
原文链接:http://www.orlion.ga/727/ 解释: 原型设计模式创建对象的方式是复制和克隆初始对象或原型,这种方式比创建新实例更为有效,在需要经常创建资源集中型对象的情况下,原型模式可以提供更快速执行的途径。 代码: 声明一个克隆自身的接口: 具体克隆对象 App.php 关于浅复 ...
分类:
其他好文 时间:
2016-04-03 23:26:54
阅读次数:
152
原文链接:http://www.orlion.ga/207/ 一、代理模式 代理模式是经常用到的设计模式,代理模式是给指定对象提供代理对象。由代理对象来控制具体对象的引用。 代理模式涉及到的角色: 抽象主题角色:声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。 代理主 ...
分类:
编程语言 时间:
2016-04-03 22:20:48
阅读次数:
353
原文链接:http://www.orlion.ga/603/ 一、创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可以非常简单地对数据库进行创建和升级。 SQLiteOpenHelper是一个抽象类,其中有两个抽象方 ...
分类:
移动开发 时间:
2016-04-03 22:20:02
阅读次数:
311
原文链接:http://www.orlion.ga/687/ 解析JSON的方式有很多,主要有官方提供的 JSONObject,谷歌的开源库 GSON。另外,一些第三方的开源库如 Jackson、FastJSON等也非常不错。 假设JSON数据为: 一、JSONObject 首先是将服务器返回的数据 ...
分类:
移动开发 时间:
2016-04-03 22:18:22
阅读次数:
214
原文链接:http://www.orlion.ga/1072/ 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区中把数据读走,内核提供的这种机制称为进程 ...
分类:
系统相关 时间:
2016-04-03 22:15:47
阅读次数:
228
原文链接:http://www.orlion.ga/731/ php用clone复制对象有一个问题,下面用代码来说明问题: 输出是: 输出说明了一个问题:$cloneFoo->bar->name = 'new bar obj';这句话本意是想把$cloneFoo中的$bar的name修改了。但是却顺 ...
分类:
Web程序 时间:
2016-04-03 22:15:40
阅读次数:
206
原文链接:http://www.orlion.ga/1044/ 一、fork函数 #include <sys/types.h> #include <unistd.h> pid_t fork(void); fork调用失败返回-1。下面通过一个例子来理解fork是怎样创建进程的。 输出 fork-ww ...
分类:
系统相关 时间:
2016-04-03 22:14:30
阅读次数:
239
原文链接:http://www.orlion.ga/674/ 一、定义一个服务 创建一个项目ServiceDemo,然后在这个项目中新增一个名为 MyService的类,并让它继承自 Service,完成后的代码如下所示: public class MyService extends Service ...
分类:
移动开发 时间:
2016-04-03 22:13:01
阅读次数:
238