自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 循环引用-智能指针的死穴之一

智能指针的实现思路也体现了C++基于对象的原则,对象应该为自己管理的资源负责,包括资源的分配与释放,而且最好将资源的释放与分配搞的自动化一点,典型的实现方法就是在构造函数里分配资源,在析构函数里释放资源,这样当其他程序员在使用这个对象时,该对象的资源问题几乎不用额外的操心,即优雅又方便        然后如此完美的东西,也有其不容忽视的地方,直接上代码:// share_ptr.cpp :

2015-04-08 11:27:00 1729 1

原创 C++复制对象时勿忘每一部分

确保两点: 1 复制所有的成员变量 2 调用所有基类的copy函数class Customer{public: explicit Customer(const tstring _name,const tstring _lastTransaction) :m_sName(_name), m_sLastTransaction(_lastTransaction) { Ou

2015-04-07 10:34:31 875

原创 虚函数中“虚”的理解

1、首先回顾一下虚函数的概念虚函数:不代表一定需要子类去实现,而是可以通过基类的指针调用子类的此函数。纯虚函数:一定需要子类去实现它,它定义的仅仅是一组行为,拥有纯虚函数的类即为抽象类,只能当做基类,无法实例化。2、为什么叫“虚”函数呢正是这个函数调用的不可预测性,而这种不可预测性即函数的调用在编译阶段无法确定,待执行时才能确定函数调用的真正地址       3

2015-04-06 19:49:02 856

原创 C++四种类型转换总结

const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。4种类型转换的格式,如:TYPE B = static_cast(TYPE)(a)。cons

2014-11-26 15:26:54 930

原创 排序算法总结

1 冒泡排序: void BubbleSort(int*p,int len){ //冒泡方式二:当某一次遍历没有发生任务数据交互时,说明已经排序好了 bool flag = true; int k = len; while (flag) { flag = false; for(int j=0 ; j<k-1 ; j++) { if

2014-11-18 19:24:39 653

原创 VS2010,原来还有这些快捷键,果断记下来!

一直觉得VS的快捷键跟eclipse比起来差远了,那些因为不知道还有如此多有效却不知的快捷键阿        1. 检查括号匹配(在左右括号间切换): Ctrl +]        2. 选中从光标起到行首(尾)间的代码: Shift + Home(End)        3、注释选定块:Control+K,Control+C        4、取消注释块:Control+K,Co

2014-11-05 20:22:14 798

原创 TCP三次握手和四次挥手详解

TCP头:Source Port (0 - 65535)Destination Port(0 - 65535)Sequence Number(0 - 4294967295)Acknowledgement Number(0 - 4294967295)DataOffset

2014-11-01 09:28:15 1032

原创 InterLockedIncrement and InterLockedDecrement函数原理

实现数的原子性加减。什么是原子性的加减呢?举个例子:如果一个变量 Long value =0;首先说一下正常情况下的加减操作:value+=1;1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的值;2:将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束。如果此时有两个Thread ,分别记作threadA,threa

2014-10-25 21:47:54 986

原创 do...while(0)的妙用

1. do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version 1bool Execute(){   // 分配资源   int *p = new int;   bool bOk(true);   // 执行并进行错误处理

2014-10-23 22:20:26 655

原创 Sizeof与Strlen的区别与联系

1、 sizeof:sizeof(...),是一个运算符,定义为unsigned in类型,其大小在编译期间决定的,参数可以是基本数据类型、数组、指针、对象、函数等。功能:获得保证能容纳实现所建立的最大对象的字节大小。   数组:数组所占空间字节数:   指针:存储该指针所用的空间大小   对象:该对象所占内存空间大小二、strlen:     strlen(...)是

2014-10-18 23:17:27 795

原创 关于stringstream的学习

库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。注意,使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了

2014-10-18 10:40:01 936

原创 strcpy和memcpy的区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);返回值是char*是为了链式表达。memcpy提供了一般内存的复制。即memc

2014-09-29 23:18:40 2389

原创 debug版本运行没有问题,而release版本总是报错?

下面将讲述一下我的几点经验,看看是不是其中之一:1. 变量。大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过)。这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程

2014-08-24 11:47:51 7720

原创 TCP可靠传输机制

TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。TCP通过下列方式来提供可靠性:1.面向字节流和缓存机制:应用数据被分割成TCP认为最适

2014-08-17 17:04:26 2612

原创 浅析TCP字节流与UDP数据报的区别

“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒

2014-08-10 10:05:39 2713

原创 深入理解 Java中的 流 (Stream)

首先,流是什么?流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。当程序

2014-08-07 17:27:41 741

原创 Java中transient关键字的应用

今天跟JDK源码的时候发现transient ,感觉从来没见过,于是用google查了一下.  Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 下面我们查创建一个LoginFile的类:public class LoginFile impleme

2014-08-04 11:42:16 1261

转载 Android开发-android架构

原文地址:

2014-07-28 22:30:22 591

原创 Java设计模式(三)-装饰者模式

我们都知道,可以使用两种方式给一个类或者对象添加行为。        一是使用继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。        二是使用关联。组合即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用该对

2014-07-27 12:04:35 976

原创 JAVA-抽象类和接口的区别总结

首先.抽象类和接口都很好的提供了一种将实现和接口分离的方法.. 一、抽象类我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长成

2014-07-26 15:07:53 2402

原创 Android Intent机制和常见用法

ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态)。对于Activity,关

2014-06-11 11:25:10 848

原创 一站式学习Wireshark

下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包。例如,如果想要在无线网络上抓取流量,点击无线接口。点击Capture Options可以配置高级属性,但现在无此必要。    原文出自:https://community.emc.com/message/818739#818739点击接口名称之后,就可以看到实时接收

2014-06-10 21:41:46 1138

原创 Windows获取系统分辨率4种方式总结

总结了Windows获取系统分辨率的几种方式,以及修改系统显示比例对每种方式的影响.         假设本机的系统分辨率为1920*1080,测试结果和代码如下: /*-____________________________________________________________________________________________|系统比例

2014-06-09 15:26:28 5064

原创 Window获取所有运行的进程

通过遍历任务管理器,输出当前正在运行的进程ID和Name。同时打印出遍历过程所消耗的时间。/*@Date:2014/6/8@Author:Alex*/#include #include #include #include #include using namespace std;bool traverseProcesses(map &_mapProcess)

2014-06-08 21:45:55 1375

原创 解决MFC应用程序在调整系统比列放大后出错问题心得

公司有一个屏幕书写的软件,06年开始开发的,至今已八年之久,目前处于维护阶段,在接到这个任务前我也没机会接触这个项目的代码日前,客户反应在系统比列调整为150%出现界面显示不正常、笔记偏移、笔记画出屏幕崩溃等问题。更坑人的是,经过测试部测试发现在不同的主机上有不同的现象,后来在我的自己的开发机上运行有问题,但是比较少。因为我现任的直属领导就是当前这个项目的主力之一,他也觉得很诡异,让我更诡异的

2014-06-08 16:39:12 2631

原创 Java设计模式(二)-单例模式

单例模式建议保证某个对象仅仅只有一个实例,当只有一个对象来协调整个系统的操作时,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例,总之,选择单例模式就是为了避免不一致状态,避免政出多头。    下面是单例模式的类图:包括的private和static修饰的实例instance、一个private的构造函数、一个static的getInstance函数

2014-04-27 11:42:58 803

原创 Java 设计模式之-观察者模式

观察者模式定义了对象的一种一对多的关系,一遍一个对象发生变化时,可以通知所有的观察者。     猎头和求职者之间并是观察者模式最典型的列子,求职者先在猎头处注册,当有新的工作机会时猎头就会通知求职者。     下面是关于猎头和求职者的类图:     Subject接口:interface Subject{ public void registerObserver(Ob

2014-04-27 00:04:54 886

原创 关于java中String的一点理解

String类是java的最基本类之一,很好的掌握它的原理很是必要的!  1、String的Final类型的,是不可继承 的,final类默认的方法都为final类型,保证了方法不能被重载,成员变量不影响  2、String的本质就是char[] 并且其值是不可改变的  3、String str = "abc"是一种特殊的创建方式,"abc"存在常量区,str只是对其的引用  4、

2014-04-26 15:08:47 1028

翻译 开发者必备的6款源码搜索引擎

借鉴现有的开源项目或开源代码,对于初级开发者来说,不失为一种很好的编程手段,但千万不要单纯地“用”,更多地是理解与提升,这样才会进步。  下面为大家介绍6款源码搜索引擎,让你找到更适合你的源码,  1.Ohloh  Ohloh Code是最大且非常全面的源码搜索引擎,根据FOSS目录来看,其拥有超过10亿行代码且在不断更新,它不仅是免费的,而且还可以通过社区进行免费

2014-04-20 11:26:45 1704 3

原创 Eclipse最常用快捷键总结

1. ctrl+shift+r:打开资源    这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline    如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下

2014-04-18 08:46:18 1333 1

原创 码农提高工作效率

出处:http://www.cnblogs.com/huang0925/p/3612741.html俗话说,天下武功,唯快不破。也就是说要练成天下高手的话,出招速度一定要快,这样才能在江湖上立足,不至于掉了脑袋。而程序员要在IT界混出个名堂,也要有高效的工作效率才行。IT行业时时刻刻都产生着新知识、新技术,要想跟上变革肯定要有几把刷子。而我本人很喜欢各种各样的方式来提高自己的工

2014-04-16 22:18:08 782

原创 java web系统级初始化工作

通常我们在做web开发时,有些系统级参数希望在web启动时就进行一次性初始化,供整个工程调用使用。如,系统配置参数,就可以结合hibernate二级缓存,进行一次性获取并进行共享。这时就可以采用监听。     ServletContext 被 Servlet 程序用来与 Web 容器通信。例如写日志,转发请求。每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享。因

2014-04-16 21:53:43 2195

原创 移动开发者必看干货!!!

移动开发者必看干货,省时省力,那些年我们一起拥抱的开源项目和优秀工具!!!

2014-04-10 08:57:02 2055

原创 分别用数组和链表实现堆

为了更好的理解栈的原理,本文分别用数组和链表实现了栈,    关于堆和栈的区别可参考文章:http://blog.csdn.net/oshirdey/article/details/20154627    工程下载地址:http://download.csdn.net/detail/oshirdey/7162855    1 数组实现栈: /*@ brife:数组实现栈类*

2014-04-08 20:40:09 1378 1

原创 字符串中字符查找函数:strchr,wcschr 及strrchr, wcsrchr函数

(1)   char *strchr( const char *string, intc );   wchar_t *wcschr( const wchar_t *string, wchar_t c );   Find a character in a string. 查找一个字符串中首次出现的指定字符。  Return Value:Each of these func

2014-04-08 15:55:19 4759

原创 CreateTimerQueueTimer学习笔记 .

定时器队列(Timer Queue)可以使用CreateTimerQueue函数创建。定时器队列中的定时器是轻量级对象,可以在一定时间间隔之后调用指定的回调函数(可以只调用一次,也可以是周期性的)。这种等待操作由线程池中某个线程处理的(系统级别)。        向定时器队列中添加定时器可以使用CreateTimerQueueTimer函数。更新一个计时器队列中的计时器可以使用 Chang

2014-04-04 12:44:18 12345

转载 TCP协议的KeepAlive机制与HeartBeat心跳包

原文地址:http://www.nowamagic.net/academy/detail/23350382

2014-04-03 22:41:04 1502

原创 Windows DDK中经典的宏——CONTAINING_RECORD

#define CONTAINING_RECORD(address, type, field) ((type *)( \                                                  (PCHAR)(address) - \                                                  (ULONG_PTR)(&((t

2014-04-03 19:08:07 703

转载 10个精妙的Java编码最佳实践

原文地址:http://www.importnew.com/10138.html这是一个比Josh Bloch的Effective Java规则更精妙的10条Java编码实践的列表。和Josh Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不常见的情况,可能有很大影响。我在编写和维护jOOQ(Java中内部DSL建模的SQL)时

2014-04-01 22:44:56 529

转载 UML中6大关系分析

转自:http://www.yongfa365.com/Item/UML-Association-Dependency-Aggregation-Composition-Realization-Generalization.html大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency

2014-03-31 23:30:07 598

用数组合链表实现栈

为了更好的理解栈的原理.用数组合链表实现栈

2014-04-08

空空如也

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

TA关注的人

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