- 博客(19)
- 收藏
- 关注
转载 Eclipse中用Maven插件建立Web工程
使用Eclipse的maven构建一个web项目1、选择建立Maven Project 选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project;点击next 2、选择项目路径 Usedefault Workspace location默认工作空间 3、选择项目类型 在Ar
2014-10-21 09:01:49 733
转载 Apache Commons Configuration 读取配置信息
在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架——Apache Commons Configuration framework. 你会了解到 ·从XML文件中获取数据 ·访问环境变量 ·连接不同类型的配置信息(基于XML的,基于环境变量的,等等) ·在程序改变后自动重新加载配置
2014-09-16 14:35:59 865
原创 sed用法总结
每次都要google怎么用sed,因为本人实在记不住那些符号的意思。索性总结一下一些用法,节省搜索时间。1. 什么是sed sed是一种改进的,非交互式的编辑器。用户可以用命令实现vi的所有编辑功能。sed不会改变文件内容,而是把结果输出到屏幕。2. sed和正则表达式 和grep一样,sed也支持正则表示式。grep所支持的metacharacter,s
2012-10-08 15:09:46 960
原创 设计模式之---适配器模式
一、模式定义 将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、所体现出的设计原则 我觉得这里体现了2种设计原则:首先是迪米特法则“不合陌生人说话”,类之间的关系尽量少;然后是部分体现了“开闭法则”,增加适配器使得原有系统的接口不必要更改。三、UML图示
2012-10-08 14:59:34 601
原创 设计模式之---模板方法模式
一、模式定义 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。二、所体现出的设计原则 Hollywood原则:别调用(打电话给)我们,我们会调用(打电话给)你。 此原则要求永远只能是高层组件(如2中的AbstractClass的模板方法)调用低
2012-09-26 10:40:04 613
原创 设计模式之---单件模式
一、模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 二、所体现出的设计原则 这里重新归纳一下软件设计中的几个原则: 1.OCP法则:开闭法则(Open-Closed Principle)一个软件系统应当对扩展开放,对修改关闭。 描述:通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵活性
2012-09-25 15:52:32 642
原创 设计模式---命令模式
一、模式定义 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其它对象。命令模式也支持可撤销的操作。此模式允许我们将命令对象随心所欲地存储,传递和调用。二、所体现出的设计原则 解除请求的发出者和请求执行者之间的耦合三、UML图示
2012-09-24 16:02:42 617
原创 中位数和顺序统计
如何求取数组中第i 小(大)的数,好像就是顺序统计了,反正我是这么理解的。。。有了顺序统计,求取中位数就方便了。假设数组有n个元素,如果n为奇数,则转化为求取第(n+1)/2小的元素;如果n为偶数,则转化为求取第n/2小和第n/2+1小的元素,并取平均值得到。中位数的好处? 好像是为了解决求平均值时的一个弊端:如果样本中有一个极大值,其它大部分都是普通值,则求出平均值和真实情况相比误差很大
2012-02-03 15:08:28 1534
原创 查找算法总结
====================顺序查找算法====================1. 算法描述 顺序比较即可。2. 平均查找长度 (n+1)/2, 其中n为表长。 3. 算法实现 省略 4. 优化思想 根据经验,目前被查到越多的元素,将来可能被查到的可能性也越大。所以可以考虑,每次查找到一个元素后,将它和直接前驱交换位置。
2012-02-03 11:05:17 27301 1
原创 排序算法总结
==============================冒泡排序算法==============================1.算法稳定性 稳定2.复杂度 空间复杂度O(1); 平均时间复杂度O(n2)3.极限情况分析 最好情况:向量本来就是有序的,则一趟扫描即可结束,共比较n-1次,无交换。 最坏情况:向量是逆序的,则一共需要做n-1
2012-02-03 10:06:07 2365
原创 设计模式之---工厂模式
一、模式定义 1. 简单工厂模式(又称静态工厂模式):并没有派生体系,通常提供一个静态的方法,创建一个具体的产品,并返回一个产品抽象类的指针,简单工厂模式通常不被当成设计模式的一种,而只是一种编程习惯,将产品的创建工作集中一个地方,当产品发生变化时,只需要修改静态工厂的方法即可。也就是将变化的部分独立出来了。 2. 工厂模式:定义一个创建对象的接口,但由子类决定要实例化的类是哪
2011-11-11 10:39:47 805
原创 设计模式之---装饰者模式
一、模式定义 动态地将责任附加到对象上,如果要扩展功能,装饰者提供比继承更有弹性的替代方案。二、所体现出的设计原则 开放-关闭原则:类应该对扩展开放,对修改关闭。三、UML图示四、应用场景 1. 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 2. 处理那些可以撤消的职责。 3. 当不能采用生成子类的方法进行扩充时
2011-11-09 14:38:07 666
原创 设计模式之---观察者模式
一、模式定义 定义一种对象之间的一对多的依赖关系,这样一来,当一个主题对象改变状态时,它的所有观察者都会收通知并自动更新。二、 所体现出的设计原则为交互对象之间的松散耦合设计而努力。三、UML图示 四、应用场景 1. 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二
2011-11-09 13:56:55 654
原创 设计模式之---策略模式
一、模式定义 定义一个算法家族,包含一组可替换的算法。策略模式使得算法和算法的使用者之间的解耦;并使得使用者可以动态的使用算法家族中的任何一个算法。二、体现的设计原则 策略模式体现出了一下3个设计原则: 1. 独立出应用中需要变化的部分,和不经常变换的部分想分离。比如算法就属于经常变化的部分,将其独立出来,修改或者扩展时,不会影响到使用者。 2. 针
2011-11-07 14:43:50 816
转载 STL容器迭代器失效问题
众所周知当使用一个容器的insert或者erase函数通过迭代器插入或删除元素"可能"会导致迭代器失效,因此很多建议都是让我们获取insert或者erase返回的迭代器,以便用重新获取新的有效的迭代器进行正确的操作:view plaincopy to clipboardprint?iter=vec.insert(iter); iter=vec.erase(iter);
2011-11-02 16:32:07 3026 1
转载 设计模式之---调停者模式
调停者(中介者)模式(Mediator)定义一个对象封装一系列多个对象如何相互作用,使得对象间不需要显式地相互引用,从而使其耦合更加松散,并且还让我们可以独立变化多个对象相互作用。结构图如下:以一个聊天室的例子进行说明,一个聊天室可以很多成员,成员可以加入不同的讨论组,聊天室就是一个中介,讨论组中的成员通过聊天室发送消息。结构图如下:实现代码://IChatro
2011-10-24 17:07:05 677
转载 c++中的可变形参
C语言中的printf,scanf就是最常见的可变形参函数,定义一个可变形参的函数很简单,如void print(int n, ...) ,函数中对参数的处理主要是通过对栈进行操作,而c函数的实参都是自右向左压入栈的. 主要的栈操作(都是宏)有va_list,va_start ,va_arg,va_end, 定义如下: typedef char * va_list;
2011-10-24 14:29:49 1689
转载 C++虚函数表解析(转)
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R
2011-09-05 16:01:02 517
转载 C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全
2011-09-01 09:42:41 517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人