![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与程序设计
李明子
从事TiEAF开发平台及MDM产品的研发与管理工作;
2014年11月通过软考,获得系统架构设计师资格(水平)证书;
2007年2月通过软考,以辽宁省第13名的成绩获得程序员资格(水平)证书;
展开
-
Linux内存分配伙伴算法空闲链表、位图与内存对应关系图解
网上能够找到的关于Linux内存分配伙伴算法的介绍不是很多,而且大多是进行较为抽象的介绍。为了能够让初学者能够快速建立起伙伴算法中提及的空闲链表、位图与内存间的对应关系,我做了以下几张图片,希望能够给初学者带来帮助。需要指出的是,我在本文中未对相关图示做更多的解释,请初学者参照网上的理论介绍理解其中的含义。 为了举例方便,我假定最大块为2G,最小块为256M(比较夸张,只是为了便于说明问题)。 初始状态,如图1-1所示。图1-1 初始状态 分配512M内存,如图原创 2010-11-22 11:45:00 · 6560 阅读 · 4 评论 -
设计模式讲解与代码实践(九)——组合
本文讲解了组合(Composite)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-19 22:48:52 · 1923 阅读 · 0 评论 -
设计模式讲解与代码实践(十七)——迭代器
本文讲解了迭代器(Iterator)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-08-09 01:02:06 · 2456 阅读 · 1 评论 -
设计模式讲解与代码实践(十五)——命令
本文讲解了命令(Command)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-08-01 17:37:22 · 2225 阅读 · 0 评论 -
设计模式讲解与代码实践(十六)——解释器
本文讲解了解释器(Interpreter)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-08-03 21:41:05 · 2515 阅读 · 0 评论 -
设计模式讲解与代码实践(十八)——中介者
本文讲解了中介者(Mediator)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-08-17 23:04:31 · 2605 阅读 · 0 评论 -
设计模式讲解与代码实践(十二)——享元
本文讲解了享元(Flyweight)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-26 23:47:18 · 2212 阅读 · 0 评论 -
WorldWind瓦片调度策略说明
本文结合源码分析介绍了WorldWind中的瓦片调度策略。原创 2017-08-21 09:09:12 · 3786 阅读 · 0 评论 -
设计模式讲解与代码实践(十四)——职责链
本文讲解了职责链(Chain of responsibility)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-28 21:35:34 · 2260 阅读 · 1 评论 -
设计模式讲解与代码实践(十九)——备忘录
本文讲解了备忘录(Memento)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-10-12 21:47:53 · 2614 阅读 · 0 评论 -
设计模式讲解与代码实践(二十)——观察者
本文讲解了观察者(Observer)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-10-30 16:56:32 · 2514 阅读 · 0 评论 -
设计模式讲解与代码实践(二十一)——状态
本文讲解了状态(State)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-11-28 20:16:24 · 2054 阅读 · 0 评论 -
设计模式讲解与代码实践(二十二)——策略
本文讲解了策略(Strategy)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-12-08 22:51:46 · 2609 阅读 · 0 评论 -
设计模式讲解与代码实践(二十三)——模板方法
本文讲解了模板方法(Template Method)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-12-08 23:03:54 · 2615 阅读 · 0 评论 -
设计模式讲解与代码实践(二十四)——访问者
本文讲解了访问者(Visitor)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-12-14 21:57:29 · 1837 阅读 · 0 评论 -
设计模式讲解与代码实践(七)——适配器(基于对象)
本文讲解了适配器(Adapter)设计模式(基于对象)的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-10 17:23:49 · 1934 阅读 · 0 评论 -
设计模式讲解与代码实践(六)——适配器(基于类)
本文讲解了适配器(Adapter)设计模式(基于类)的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-10 17:11:35 · 2036 阅读 · 0 评论 -
递归漫谈(一)
递归,是我们在开发过程中经常会使用的技术。然而,在日常的管理和招聘工作中,我发现由于开发者个人经验不足及团队开发规范不明确等原因,很多开发者不知道应该何时编写递归函数,怎么编写递归函数。一些开发者编写的递归函数存在可读性差、调试困难、逻辑混乱等问题,甚至还会引入死循环等后果严重的bug。我将在本文中带领读者回顾递归的基础知识,剖析递归函数的设计要点并分享一些相关的最佳实践。原创 2017-04-12 15:13:34 · 2207 阅读 · 0 评论 -
递归漫谈(二)
递归,是我们在开发过程中经常会使用的技术。然而,在日常的管理和招聘工作中,我发现由于开发者个人经验不足及团队开发规范不明确等原因,很多开发者不知道应该何时编写递归函数,怎么编写递归函数。一些开发者编写的递归函数存在可读性差、调试困难、逻辑混乱等问题,甚至还会引入死循环等后果严重的bug。我将在本文中带领读者回顾递归的基础知识,剖析递归函数的设计要点并分享一些相关的最佳实践。原创 2017-04-12 15:40:15 · 2314 阅读 · 0 评论 -
设计模式讲解与代码实践(一)——抽象工厂
本文讲解了抽象工厂(Abstract Factory)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-05-01 12:25:27 · 2672 阅读 · 0 评论 -
设计模式讲解与代码实践(二)——生成器
本文讲解了生成器(Builder)设计模式的使用目的、基本形态、各参与者以及调用时序,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-05-03 15:02:40 · 2890 阅读 · 2 评论 -
设计模式讲解与代码实践(三)——工厂方法
本文讲解了工厂方法(Factory Method)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-06-01 16:21:19 · 1937 阅读 · 0 评论 -
设计模式讲解与代码实践(四)——原型
本文讲解了原型(Prototype)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-06-02 14:40:13 · 2184 阅读 · 0 评论 -
树型数据在关系数据库中的存储方式辨析
本文成文于2014年2月,背景是TiEAF(基础业务平台)设计之初“模型树”的存储方式选型。笔者在文中对关系数据库中常用的树型结构的存储方式进行了描述和辨析。现将其整理发表以供读者参考。原创 2017-07-12 19:37:29 · 8991 阅读 · 0 评论 -
带有层号的先根遍历树存储基于plsql的代码实现
本文介绍了带有层号的先根遍历树存储基于plsql的代码实现,本文中涉及的代码编写于2014年3月。另外,本文提供了测试表创建语句以及插入节点、获取直接子节点、获取自身及子孙节点、获取根到指定节点的路径、删除节点等方法的存储过程源码与测试样例。原创 2017-07-13 23:19:40 · 2341 阅读 · 1 评论 -
设计模式讲解与代码实践(五)——单例
摘要:本文讲解了单例(又称单件,Singleton)设计模式的使用目的、基本形态、参与者、代码示例及适用的应用场景。原创 2017-07-05 11:57:13 · 2130 阅读 · 0 评论 -
设计模式讲解与代码实践(十)——装饰
本文讲解了装饰(Decorator)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-20 19:38:54 · 2291 阅读 · 0 评论 -
设计模式讲解与代码实践(十三)——代理
本文讲解了代理(Proxy)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-27 22:32:50 · 2140 阅读 · 0 评论 -
设计模式讲解与代码实践(十一)——外观
本文讲解了外观(Facade)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-21 21:59:22 · 2094 阅读 · 0 评论 -
关于缓存文件格式(单文件文件柜)是否适合使用伙伴算法的讨论
本文成文于2010年11月,背景是笔者所在的GIS产品开发组对资源缓存文件(单文件文件柜)的文件格式选型出现分歧。当时,一部分开发人员提出希望新版的数据引擎基于Linux伙伴算法作为文件格式分配存储,而包括笔者在内的另一部分开发人员坚持沿用原有的基于索引的链式存储文件格式。本文即为笔者当时用于表达自己的观点。原创 2017-07-23 17:09:13 · 1905 阅读 · 0 评论 -
设计模式讲解与代码实践(八)——桥接
本文讲解了桥接(Bridge)设计模式的使用目的、基本形态及各参与者,并结合示例代码,讲解了该设计模式在具体业务场景下的使用。原创 2017-07-18 22:39:45 · 2305 阅读 · 0 评论 -
设计模式讲解与代码实践(零)——序
随着《设计模式讲解与代码实践(二十四)——访问者》的发表,《设计模式讲解与代码实践》这个专栏的更新也已经接近尾声。今天我将补写一个序,聊聊对设计模式的学习与工作中应用的一些心得体会。原创 2017-12-15 00:42:30 · 1118 阅读 · 1 评论