自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TrendGrucee的专栏

和梦想比起来,其他的都不靠谱

  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 Command(命令)模式

一、命令模式简介(Brief Introduction)      命令模式(Command Pattern)将请求封装为一个对象,从而使你用不同的请求对客户进行参数化,对请求排队或纪录请求日志,以及支持可撤销的操作。二、解决的问题(What To Solve)       当需要有撤销或者恢复操作时,可以考虑使用命令模式。三、命令模式分析(Analysis)Command

2012-12-04 21:52:54 490

原创 Chain Of Responsibility(职责链)模式

一、职责链简介(Brief Introduction)     使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一个链,并沿着这条链传递该请求,直到有一个对象处理它为止二、解决的问题(What To Solve)    客户端发出一个请求,会有很多对象都可以来处理这个请求,而且不同的对象的处理逻辑不一样,对于客户端而言,无所谓谁来处理,反正有对象处

2012-12-03 22:46:40 402

原创 C++类成员函数指针

1、直接上代码#include #include using namespace std;class Test{public: void print(string name) { cout << "Hello," << name << endl; }};typedef void (Test::*PointPrint)(string);

2012-12-03 16:28:30 426

原创 Proxy(代理)模式

一、代理模式简介(Brief Introduction)代理模式(Proxy Pattern)对其他对象提供一种代理以控制对这个对象的访问。二、解决的问题(What To Solve)1、远程代理       远程代理,也就是为了一个对象在不同的地址空间提供局部代表。这样可隐藏一个对象存在与不同地质空间的事实,隐藏对象所在的地址空间。2、虚拟代理       虚拟代理,是根

2012-12-01 15:17:40 462

原创 Flyweight(享元)模式

一、享元模式简介(Brief Introduction)享元模式(Flyweight Pattern),运用共享技术有效支持大量细粒度的对象。       享元模式可以避免大量非常相似类的开销。在程序设计中有时需要生成大量细粒度的类实例来表示数据。如果发现这些实例除了几个参数外基本伤都是相同的,有时就能够受大幅度第减少需要实例化的类的数量。如果能把这些参数移到类实例外面,在方法调用时将他们

2012-12-01 12:47:14 452

原创 Decorator(装饰者)模式

一、装饰模式简介(Brief Introduction)动态地给一个对象添加一些额外的职责。优点:把类中的装饰功能从类中搬移出去,这样可以简化原有的类。有效地把类的核心功能和装饰功能区分开了。二、角色解析Component:组件对象的接口,可以给这些对象动态的添加职责ConcreteComponent:具体的组件对象,实现组件对象接口,通常是被装饰器装饰的原始对象,也就是可

2012-11-30 16:57:45 446

原创 Composite(组合)模式

一、组合模式简介(Brief Introduction)组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。二、解决的问题(What To Solve)解决整合与部分可以被一致对待问题。三、代码解释Component:抽象的组件对象,为组合中的对象声明接口,让客户端可以通过这个接口来访问和管理整个对象结构,可以在里

2012-11-30 16:50:17 431

原创 Bridge(桥接)模式

一、桥接模式简介(Brief Introduction)      桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使的抽象和实现都可以独立地变化。二、类说明Abstraction:抽象部分的接口,通常在这个对象中,要维护一个实现部分的对象引用,抽象对象里面的方法,需要调用实现的部分的对象来完成。这个对象中的方法,通常都是和具体的业务相关的方法Refined

2012-11-28 16:51:42 524

原创 Adapter(适配器)模式

一、适配器模式简介(Brief Introduction)适配器模式,将一个类装换成客户期望的另外一个接口。Adapter模式使的原本由于接口不兼容而不能工作的那些类可以一起工作。二、解决的问题(What To Solve)1、使用第三方组件,而这个组件的接口与目前系统接口不兼容(如方法与系统方法不一致等),可以使用适配器模式解决接口不兼容问题。2、使用早前项目一些有用的类,可以用

2012-11-28 12:10:34 391

原创 Singleton(单例)模式

一、单例模式简介(Bref Introduction)    单例模式(Singleton Pattern),保证一个类只有一个实例,并提供一个访问它的全局访问点。单例模式因为Singleton封装它的唯一实例,它就可以严格地控制客户怎样访问它以及何时访问它。二、单例模式在第一次用到的时候初始化1、Singletonclass ImplFactory{public:

2012-11-28 11:13:10 393

原创 Prototype(原型)模式

//待续

2012-11-28 11:12:29 417

原创 Factory Method(工厂方法)模式

//待续

2012-11-28 11:11:42 185

原创 Builder(生成器)模式

//daixu

2012-11-28 11:11:00 150

原创 Abstract Factory模式

下面是简单工厂模式一、简单工厂模式简介(Bref Introduction)      简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖二、解决的问题(What To Solve)      客户实例化对象时不需要关心该对象是由哪个子类实例化的。

2012-11-28 11:09:53 691

原创 数据库序列

一、Oracle数据库1、创建序列SQL> CREATE SEQUENCE name [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}] 2、查询序列(1)

2012-11-23 22:51:57 4308

原创 C++内存泄露检测

//待完成

2012-11-22 19:19:33 161

原创 Oracle基础

1、Oracle用户类型区别 1.1 sys和system用户的区别【system】用户只能用normal身份登陆em。【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。“SYSOPER”权限,即数据库操作员权限,权限包括:  打开数据库服务器   关闭数据库服务器  备份数据库       恢复数据库

2012-11-21 11:41:31 545

原创 编译链接错误

1、error C2512: “HTable”: 没有合适的默认构造函数可用?分析:一般自定义了构造函数之后,可能会出现这种错误;但是现在,HTable中并没有定义任何构造函数,它应该有默认构造函数的,为什么会报这个错误呢?定位方法:(1)手动添加了一个默认的构造函数HTable(){}; 现在出现了一个新的错误:error C2512: “List”: 没有合适的默认构造函数可用。

2012-11-18 21:19:43 1511

原创 c++中的explicit关键字

c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的。1、不使用此关键字的效果:如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象。例如class A{public: A(int a):_a(a){} void printA() { cout << _a << endl;

2012-11-17 16:35:16 546

原创 从标准库函数strtod理解指针

1、函数定义: double strtod ( const char * str, char ** endstr); 参数: str:要解析的字符串 endstr:函数体中会修改endstr所指向的内容,使其指向解析double后的下一个字符。 函数功能: Convert sting to double. 使用方法: char * str = "3.1415aab"; char

2012-11-17 15:38:13 793

原创 【词条】大端(big-endian)模式和小端(little-endian)模式

1、我们知道当定义一个变量的时候,操作系统会为这个变量分配一段内存,具体分配哪段内存由操作系统的内存分配策略决定。例如short int x = 0x1234;(为了好理解,我们这里使用16进制表示)这个时候操作系统会为x分配两个字节的内存(假设为0x4000、0x4001这两个地址)(1)如果x在内存中按照下面的方式存储内存地址0x4000

2012-11-17 15:15:37 714

原创 【词条】const

1、char const * const s1= "hello";      char const * s2 = s1;  //合法      char *const  s2 = s1;  //不合法       一直想不通为什么会出现上面的情况?       (1)先来看个简单的例子:       int const a = 3; //定义一个int类型的常量

2012-11-15 20:24:26 568

原创 从java转到c++随记

(1)C++中的类内容为public pirvate等,类没有限定词,如果类定义在头文件中,那么所有包含这个头文件的其他类都可以访问到这个类;但是可以通过private,public控制类的内容。(2)常量必须在构造对象之前就完成初始化,所以我们不能再构造函数里面初始化它,而只能在初始化列表中初始化;当然也可以在定义它的时候就初始化;(3)ISO C++禁止在定义成员变量的

2012-11-13 22:38:48 536

原创 【词条】虚函数

多态性  指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。  a.编译时多态性:通过重载函数实现  b 运行时多态性:通过虚函数实现。包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。(1)疑问:如果说需要把基类的析构函数设置为虚函数的话,那么在销毁的时候就能正确的调用子

2012-11-13 20:26:21 375

原创 斯坦福大学公开课:编程范式(一)

听了这第二讲,感觉学到了很多东西;首先的一个感受就是这个老师是在引导你进行思考,而不是像中国的教师一样,只教你如何计算一个数的二进制表示,如何取反码。所谓的char,short,int只是对内存字节的不同解释而已。(1) 二进制加法(不考虑负数)      short s1 = 3;               0000 0011      short s2 = 1;

2012-11-12 23:53:50 1318

原创 【词条】C++编译、链接过程

本为是对http://blog.csdn.net/bjtbjt/article/details/6707327 和http://blog.csdn.net/long2015/article/details/4465941的总结,称为原创勉强了些。C/C++编译过程主要分为4个过程  1) 编译预处理  2) 编译、优化阶段  3) 汇编过程  4) 链接程序其中第2、3过程

2012-10-29 22:06:27 517

原创 【词条】stdafx.h

关于这个文件的作用,有很多人总结过了。这里就罗列一下我的理解吧0、作用:预编译头文件,节省编译时间。1、stdafx.h和stdafx.cpp是配套的。2、stdafx.h中包含的头文件只编译一次,如果有工程文件里的大多数.cpp文件需要头文件,可以把它#include到stdafx.h文件中。3、stdafx.cpp第一个被编译,编译结果保存到stdafx.pch文件(预编译头文

2012-10-27 16:35:35 416

原创 【词条】_tmain

C/C++没有使用已经很多年了,现在想重新学起来,因为发现一直用Java的话人会退化的。使用VS2005创建了一个Win32控制台程序,生成的主函数傻眼了:#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){ return 0;}查看了一下stdafx.h这个文件,如下:#pragma once

2012-10-27 15:45:28 413

深入理解Java虚拟机--JVM高级特性与最佳实践.pdf(高清)

作为一位java程序员,你是否也曾经想深入理解java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,《深入理解java虚拟机:jvm高级特性与最佳实践》极尽化繁为简之妙,能带领你在轻松中领略java虚拟机的奥秘。《深入理解java虚拟机:jvm高级特性与最佳实践》是近年来国内出版的唯一一本与java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义。 全书共分为五大部分。第一部分从宏观的角度介绍了整个java技术体系的过去、现在和未来,以及如何独立地编译一个openjdk7,这对理解后面的内容很有帮助。第二部分讲解了jvm的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见的虚拟机的监控与调试工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括class的文件结构以及如何存储和访问class中的数据;虚拟机的类创建机制以及类加载器的工作原理和它对虚拟机的意义;虚拟机字节码的执行引擎以及它在实行代码时涉及的内存结构。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、hotspot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析jit编译的数据和结果。第五部分探讨了java实现高效并发的原理,包括jvm内存模型的结构和操作;原子性、可见性和有序性在java内存模型中的体现;先行发生原则的规则和使用;线程在java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。 《深入理解java虚拟机:jvm高级特性与最佳实践》适合所有java程序员、系统调优师和系统架构师阅读。

2014-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除