摘要:
1. 提升规则:a. 所有byte型,short型和char型将被提升到int型。b. 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。例1: short val = 5;val = val -2 ; 编译时将报错 "Type mismatch: cannot convert from int to short",表达式中右边的val自动提升为int型,int --> short故报错。例2:byte b = 40;char c = 'a';int i = 23;double d = 0.314;double result = b 阅读全文
摘要:
首先如果是下载的 XX.bin可以参考下面链接文章http://www.linuxidc.com/Linux/2012-06/62078.htm如果下载的是jdk-7u45-linux-i586.tar.gz 这样的包,官网下载地址为http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html可选择对应自己系统的包1.下载完成后解压到 /usr/local/java, 解压后可以看到JDK里的内容2. 参考上文设置环境变量 vim /etc/profile(2)添加变量如下:#/etc/p 阅读全文
摘要:
1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;3. 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\ 阅读全文
摘要:
1. 访问者模式: 表示一个作用于某对象结构中的和元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式把数据结构和作用于结构上的操作之间的耦合脱开,使得操作集合可以相对自由地演化。访问者模式的目的是把处理从数据结构分离出来,适用于 有比较稳定的数据结构,又有易于变化的算法。添加新的操作很简单,只需要添加一个新的访问者就可以了。实例:action.h action.cpp 扮演访问者的角色,添加新操作,添加其子类实例就可以了#ifndef ACTION_H#define ACTION_Hclass Man;class Woman;class Action{pub 阅读全文
摘要:
1. 解释器模式: 给定一个语言,定义它的文法的一种表示 并 定义一个解释器,这个解释器使用该表示文法 来解释语言中的句子。如果一种特定类型的问题发生的频率很高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。当一个语言需要解释执行,并且你可以将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。实例:context.h context.cpp 需要解释的文本内容#ifndef CONTEXT_H#define CONTEXT_H#include using namespace std;class Context{ 阅读全文
摘要:
1. 享元模式: 运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生成大量颗粒度的类实例来表示数据,如果能发现这些实例除了几个参数外基本都是相同的,有时就能够受大幅度地减少需要实例化的类的数量,如果能把那些参数移到类实例的外面,在方法调用时将他们传递进来,就可以通过共享大幅度地减少单个实例的数目。如果一个应用程序使用了大量对象,而大量的这些对象造成大量存储开销时就应该考虑使用享元模式,还有就是对象大多数状态可以外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。实例: (例子中 对象实例实际 阅读全文
摘要:
1. 中介者模式: 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立改变他们之间的交互。Mediator的出现减少了各个Colleague的耦合,使得可以独立地改变和复用各个Colleague类和Mediator.由于ConcreteMediator控制了集中化,于是就把交互复杂性变为了中介者的复杂性,这就使得中介者变为比任何一个ConcreteColleague都复杂。中介者模式一般应用于一组对象以定义良好但复杂的方式进行通信的场合,以及想定制一个分部在多个类中的行为,而又不想生成太多的子类的场合。实例:colleague.h coll 阅读全文
摘要:
1. 职责链模式: 使多个对象都有机会处理请求,从而避免请求发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。当客户提交一个请求时,请求是沿着链传递直到有一个ConcreteHandler对象负责处理它,接收者和发送者都没有对方的明确信息,且链中的对象并不知道链的结构。结果是职责链可以简化对象的互相连接,他们仅需一个指向其后继者的引用,而不需要保持它所有后继者的引用。一个请求极有可能到了链的最末端还是得不到处理,或者没有正确配置而得不到处理,需要事先考虑全面。实例:handler.h handler.cpp#ifndef HANDLER_H#de 阅读全文
摘要:
1. 命令模式: 将请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式有点:a. 较容易的设计一个命令队列b. 在需要的的情况下,可以较容易的将命令加入日志c. 允许请求的一方决定是否要否决请求。d. 可以容易的实现对请求的撤销和重做。e. 加入具体新的命令类不影响其他的类。实例:receiver.h receiver.cpp 实际操作者 烤肉者#ifndef RECEIVER_H#define RECEIVER_Hclass Receiver{public: Receiver(); void action();}... 阅读全文
摘要:
1. 桥接模式: 将抽象部分与它的实现部分分离,使它们都可以独立的变化。分离是指 抽象类和它的派生类用来实现自己的对象分离。实现系统可以有多角度分类,每一种分类都有可能变化,那么把这种多角度分离出来让他们独立变化,减少他们之间的耦合。实例:implementor.h implementor.cpp 实现接口#ifndef IMPLEMENTOR_H#define IMPLEMENTOR_Hclass Implementor{public: Implementor(); void virtual operation()=0;};#endif // IMPLEMENTOR_H#incl... 阅读全文