自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (22)
  • 收藏
  • 关注

原创 设计模式(2) 生成器模式(BUILDER)

问题聚焦: 生成器模式是对象创建型模式的一种 它将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2014-01-04 22:53:24 1627

原创 设计模式(1) 创建型模式和抽象工厂(Abstract Factory)

问题聚焦:分别用一句话概括这节的几个知识点1 什么是创建型模式:抽象了实例化过程2 创建型模式有哪些:抽象工厂,工厂方法,原型模式,生成器模式3 什么是抽象工厂(AbstractFactory)模式:与接口交互,获得一系列相关或互相依赖的对象实例。

2014-01-03 09:48:49 1966

原创 Effective C++(13) 用对象管理资源

问题聚焦:从这条准则开始,都是关于资源管理的。资源,一旦用了它,将来必须还给系统。本条准则,基于对象的资源管理办法,建立在C++的构造函数,析构函数和拷贝函数(拷贝构造函数和重载赋值操作符)的基础上。

2014-01-02 09:32:34 1494

原创 Effective C++(12) 复制对象时要复制每一个成员

问题聚焦:负责拷贝的两个操作:拷贝构造函数和重载赋值操作符。一句话总结,确保被拷贝对象的所有成员变量都做一份拷贝。

2013-12-31 09:29:17 1098

原创 Effective C++(11) 自我赋值(a=a)时会发生什么?

问题聚焦:自我赋值看似有点愚蠢的行为,其实总会发生的首先:它是合法的; 其次,它不一定是安全的; 再次,它有时候不是那么明显。

2013-12-30 20:07:58 1260

原创 Effective C++(10) 重载赋值操作符时,返回该对象的引用(retrun *this)

问题聚焦:这个准则比较简短,但是往往就是这种细节的地方,可以提高你的代码质量。让我们一起学习这条重载赋值操作符时需要遵守的准则吧。

2013-12-30 18:38:53 1713

原创 C++ Primer(6) 模板和泛型编程(上)

问题聚焦:泛型编程是独立于变量类型的方式编写代码;模板是泛型编程的基础。本篇主要介绍模板的基础知识,包括:模板的定义和模板的实例化。

2013-12-28 17:06:37 1111

原创 Effective C++(9) 构造函数调用virtual函数会发生什么

问题聚焦:不要在构造函数和析构函数中调用virtual函数,因为这样的调用不会带来你预想的结果。让我先来看一下在构造函数里调用一个virtual函数会发生什么结果

2013-12-26 15:34:49 1311

原创 Android开发(7)数据库和Content Provider

问题聚焦:思想:应用程序数据的共享对数据库的访问仅限于创建它的应用程序,但是事情不是绝对的Content Provider提供了一个标准的接口,可供其他应用程序访问和使用其他程序的数据

2013-12-26 14:15:23 1100

原创 Effective C++(7) 为多态基类声明virtual析构函数 or Not

问题聚焦:已经对一个对象执行了delete语句,还会发生内存泄漏吗?

2013-12-24 17:09:43 1122

原创 Effective C++(6) 如何拒绝编译器的自动生成函数

问题聚焦:如果不希望class支持某一成员函数,那么不声明和定义它就可以了,但是这一策略对与拷贝构造函数和重载赋值操作符并不起作用。因为如果不声明它们,那么当尝试调用它们的时候,编译器会为你声明和定义它们。这显然不是你所希望看到的。

2013-12-24 15:23:22 1245

原创 Effective C++(4) 确定对象被使用前已先被初始化

危害:读取未初始化的值会导致不明确甚至是半随机化的行为。最佳处理办法:永远在使用对象之前先将它初始化;确保每一个构造函数都将对象的每一个成员初始化。1 注意区分赋值和初始化:从初始化的角度而言,这不是一个最佳的处理办法。虽然这会让对象的指最终为你期望的值,但是实际上,对象的成员变量的初始化动作发生在进入构造函数本体之前。而在构造函数本体之内,不是被初

2013-12-24 14:51:21 1054

原创 Effective C++(5) 了解C++默默地编写并调用哪些函数

预热:一个空的类,当编译器处理过之后,就包含:一个copy构造函数一个重载赋值操作符一个析构函数一个默认构造函数Demo:class Empty() { }; // 声明一个空的类class Empty() // 经过编译器处理后{public: Empty() { ... } Empty(const Empty

2013-12-23 11:45:36 863

原创 Effective C++(1-2) 编译器替换预处理器

1 C++最主要的四部分:CObject-Oriented C++: 面向对象Template C++:泛型编程STLC++高效编程守则视状况而变化,取决于你使用C++的哪一部分。2 尽量以const, enum , inline替换 #define2.1 #define ASPECT_RATIO 1.653记号名称ASPECT_RA

2013-12-23 11:06:28 1030

原创 细嚼慢咽C++primer(5)——顺序容器

1 顺序容器的定义容器是容纳特定类型对象的集合。顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。标准库的三种顺序容器类型:vector, list 和 deque。适配器:stack,queue和priority_queue类型。适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型。头文件:

2013-11-06 14:27:59 880

原创 const关键字浅析

1  const变量const double PI = 3.14159;定义之后不能被修改,所以定义时必须初始化。const int i, j = 0; // error: i is uninitialized constconst变量默认为文件的局部变量,此变量只存在于那个文件中,不能被其他文件访问。通过指定const变更为extern,就可以在整个程序

2013-10-10 22:23:52 921

原创 细嚼慢咽C++primer(4)——类(1):构造函数,类型别名

1  最简单地说,类即使定义了一个新的类型和一个新的作用域。2  基础1  构造函数构造函数一般应使用一个构造函数初始化列表,来初始化对象的数据成员。Sales_item(): units_sold(0), revenue(0.0) {};2  成员函数在类内部定义的函数默认为inline.将关键字const加在形参表之后,就可以将成员函数声明为常量:

2013-09-29 19:50:40 815

原创 Andriod(3)——Understanding Android Resources

Now, we will follow that introduction with an in-depth look at Android SDK fundamentals and cover resources , content providers, and intents. These three concepts are fundamental to understanding Andr

2013-09-16 09:45:53 732

原创 android(2)——Structure of an Android Application

1 structure of an android applicationAn Android application is primarily made up of three pieces: the application descriptor, a collection of various resources, and the application's source code.I

2013-09-13 17:03:01 768

转载 Emacs快捷键(较全)

C = Control     M = Meta = Alt | Esc     Del = Backspace           基本快捷键(Basic)     C-x C-f "find"文件, 即在缓冲区打开/新建一个文件     C-x C-s 保存文件     C-x C-w 使用其他文件名另存为文件     C-x C-v 关闭当前缓冲区文件并打开新

2013-09-10 10:52:32 1620

原创 android--Getting Started

1 learning the fundamental componentsBefore we discuss more detail about this framework, we will briefly cover some fundamental concepts we should know. It is very fundamental, but fundamental is mo

2013-09-09 12:41:51 675

原创 python错误和异常(1)

1  SyntaxError: Python解释器语法错误,是唯一不是在运行时发生的异常。 2 检测和处理异常try语句有两种主要形式:try-except 和 try-finally. 只能二选一。一个try语句可以对应一个或多个except子句,但只能对应一个finally子句。try语句块中异常发生点后的剩余语句永远不会到达。except后面相当于一个处理器,处理异常

2013-08-29 19:47:07 1282

原创 python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法

1  实例属性和类属性类和实例都是名字空间,类是类属性的名字空间,实例则是实例属性的名字空间。类属性可通过类或实例来访问。只有通过类名访问时,才能修改类属性的值。例外的一种情况是,当类属性是一个可变对象时(比如一个字典),这时,通过它的实例是可以修改类的这个可变属性的。当类属性被修改时,会影响到所有的实例,包括修改之前和之后创建的实例。2  绑定和方法调用方法是类属

2013-08-27 19:12:10 3098

原创 python面向对象编程(1)——基本概念,术语,self,构造器

1 python面向对象命名规范类名通常由大写字母打头。这是惯例标准。数据值应该使用名词作为名字,方法使用动词加对象的方式,若使用混合记法,则方法名的第一个字母首字母小写,后面的单词的首字母大写。若使用骆驼记法,则方法名的组成单词之间用下划线连接。2 相关术语抽象/实现:建模,包括数据属性和数据的接口。封装/接口:描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和

2013-08-15 18:16:14 1215

原创 python的文件对象(1)

1  首先要明确的是,文件只是连续的字节。    数据的传输经常会用到字节流,无论字节流是由单个字节还是大块数据组成。2  打开文件之门的钥匙——open()    open()内建函数成功打开文件后会返回一个文件对象。基本语法如下:file_object = open(file_name, access_mode='r', buffering=-1)需要注意的是,当acc

2013-08-13 19:35:05 918

原创 浅析Linux操作系统是如何工作的(思维导图)

SA***189多任务计算机运转机制如下思维导图所示:小结:Linux操作系统是一个在时钟的节拍下,各个模块紧密协作、密不可分的整体,而整个Linux系统都是建立在存储程序的基础之上,正是有了程序和数据一同存入内存的概念,才有了之后的支持多任务的机制出现。一个CPU在一个时间只能执行一个任务,这个是由硬件决定的,那么如何在单CPU上运行多个任务,这个主要的实现机

2013-06-30 21:44:54 2376

原创 【Git】创建一个空分支

1 创建一个分支使用参数 --orphan,这个参数的主要作用有两个,一个是拷贝当前所在分支的所有文件,另一个是没有父结点,可以理解为没有历史记录,是一个完全独立背景干净的分支。参考git的帮助文档,如下:$ git checkout --orphan gh-pages# 创建一个orphan的分支,这个分支是独立的Switched to a new bra

2013-06-27 01:08:46 12064

原创 ubuntu13.04更新源

最近163的源出问题了,又要换一次源。报错如下:查更新源的命令查了好多次,这次还是记下来吧,估计以后还会用到很多次。常规来说,是要先备份的,不过感觉备份也没什么用,所以就直接跳过吧。。1  打开文件 sudo gedit /etc/apt/sources.list2  添加源地址选一两个就好了,我一般是网易

2013-06-27 00:16:42 1813

原创 【Linux操作系统分析】设备驱动处理流程

1 驱动程序,操作系统,文件系统和应用程序之间的关系字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备。Linux把设备视为文件,称为设备文件,通过对设备文件的读写操作实现对真实外设的操作。从驱动程序的角度来从下到上看层次结构,包含了硬件设备,设备驱动程序(中断处理程序,设备服务程序),文件系统和用户进程四个层次:

2013-06-17 16:46:51 1971

原创 【折腾ubuntu】Ubuntu12.04安装windows版本的福昕阅读器

福昕阅读器时一款特别好用的pdf阅读器,之所以一直使用虚拟机跑Linux,一部分原因就是因为舍不得windows下面的几个好用的软件,今天试着在Linux下面装一个福昕阅读器,这可能是全面转向Linux,抛弃windows的一个开始。。在ubuntu下安装exe文件,需要wine这个工具。1 安装wine工具1 sudo add-apt-repository ppa:ubunt

2013-06-07 14:49:02 2949

原创 【Linux操作系统分析】定时测量——RTC,TSC,PIT,jiffies,计时体系结构,延迟函数

1 基本概念定时机制连同一些更可见的内核活动(如检查超时)来驱使进程切换。两种主要的定时测量:保存当前的时间和日期,以便能通过time(), ftime()和gettimeofday()系统调用把它们返回给用户程序。维持定时器,这种机制能够告诉内核或用户程序某一时间间隔已经过去了。定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的。2 时钟和定时器电

2013-06-04 09:06:04 3319

原创 【Git】Git上传本地项目的命令以及non-fast-forward updates were rejected的解决办法

首先在网站中新建了一个project,包含README.md文件,之后的push出错一部分就要归咎于这个文件。先进行常规的操作,输入命令分别为:git init //在你的项目的根目录中git add . //添加所有文件到本地服务器中git commit -m "completed: first integration 2013.06.02" //提交,这时候并

2013-06-03 11:24:21 1739

原创 【Linux操作系统分析】Ubuntu12.04内核升级和添加系统调用

1 Ubuntu12.04内核升级1 准备条件:安装有Unbuntu12.04的机器或者虚拟机下载最新的稳定版Linux内核源码:下载地址是http://www.kernel.org/,现在最新的稳定版本是3.9.4root权限2 解压文件到/usr/src文件夹中因为我是从本地系统直接复制到虚拟机里的这个文件夹中,所以会出现权限问题。要先拷贝到别的权限较低

2013-06-02 21:05:30 4072 20

原创 【细嚼慢咽大数据】第一章——数据挖掘基本概念,邦弗朗尼原理,IF.IDF指标,哈希函数

1 数据挖掘的定义:数据挖掘是数据“模型”的发现过程。   统计学家认为数据挖掘就是统计模型的构建过程,而这个统计模型指的就是可见数据所遵从的总体分布。2 模型:建模方法可以描述为下列两种做法之一:(1)对数据进行简洁的近似汇总描述;——数据汇总(2)从数据中抽取出最突出的特征来代替数据并将剩余内容忽略。——特征提取3 数据汇总(1)PageRank:一

2013-05-31 21:20:11 2289

原创 【现代编译器】语法分析——正则表达式,上下文无关文法,递归下降分析,分析树

1 正则表达式1 最基础:要找一个数字,它可能有一个负号在前面,那么就写上一个负号加上一个问号:  -?在JAVA中,\\的意思是“我要插入一个正则表达式的反斜线,表示其后的字符具有特殊的意义”,所以要描述一个整数,正则表达式应该是: \\d。同理,要插入一个普通的反斜线,则应该是:\\\\。要表示“一个或多个之前的表达式”,应该使用:+综上,要表示“可能有一个负号,后面跟

2013-05-31 19:17:55 3449

原创 JAVA编程思想笔记【突击1】——初始化,访问权限控制,继承,多态

1 初始化初始化的一些基本知识:1 在类里定义一个对象引用时,如果不将其初始化,此引用就会获得一个特殊值null。2 在定义类成员的地方为变量赋值(C++中不允许这么做)。3 编译器会对“向前引用”发出警告4 无法阻止自动初始化的进行,它将在构造器被调用之前发生。public class Counter{ int i; Counter() { i = 7

2013-05-31 13:41:04 886

原创 【Git】Ubuntu12.04下安装git,SSH及出现的Permission denied解决办法

1 首先到git-hub网站创建一个账号。2 在终端中安装git3 生成ssh密钥4 在github上添加密钥复制SSH密钥在网站的SSH中添加公钥5 测试可能会出现这样的denied错误解决方法:输入ssh-add命令即可,中间没有空格6 设置完成,测试常用的git

2013-05-30 13:32:15 1182

原创 【Linux操作系统分析】进程的创建与可执行程序的加载

进程的创建与可执行程序的加载SA***189         周肃一 进程的创建        进程0是所有进程的祖先。进程1被创建并选择后调用execve()系统调用转入可执行程序init,init进程一直存活,创建和监控在操作系统外层执行的所有进程的活动。        当fork()被调用时,主要由函数do_fork()函数来处理。do_fork()函数的执行

2013-05-25 18:17:09 1922

原创 【现代编译器】概述

一些基本知识:1 在现代编译器中,最有用的两条抽象规则为:便于语法分析的上下文无关文法——Yacc(将语法转换成语法分析器)便于词法分析的正则表达式——Lex(将具体说明转换成词法分析器)2 树形语言的数据结构编译器使用的一些重要数据结构是进行编译程序的中间表示。这些中间表示都是用树和节点类型来表示的。每条语句(Stm)和表达式(Exp)都对应一个节点。例:

2013-05-24 21:11:49 923

原创 【Linux操作系统分析】进程——进程切换,进程的创建和撤销

1 进程进程是程序执行时的一个实例,可以把它看作充分描述程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的是担当分配系统资源(CPU时间,内存等)的实体。(早期的系统中)当一个进程创建时,它几乎与父进程相同,执行的下一条指令与父进程父进程相同,但是之后的活动是与父进程没有关系,它们各自有独立的数据拷贝(栈和堆)。多线程应用程序多个执行流的创建、处理、调度都是在用户态

2013-05-24 11:38:45 3098

《算法导论(第二版)》(中文版)课后答案

算是比较全的答案了,大家可以拿回去参考一下。算法导论要经常翻才行啊

2013-05-26

迭代器模式(Iterator)C++实现

迭代器模式(Iterator)C++实现

2014-03-14

命令模式(C++实现)

命令行模式的C++实现 编译环境VS2010 命令模式解析:http://blog.csdn.net/zs634134578/article/details/21031509

2014-03-11

UNIX环境高级编程_第二版中文

UNIX环境高级编程_第二版中文,非常经典的书目

2013-06-01

OpenGL编程指南(第六版)

学习OpenGL的必看书籍,一定要多看看

2013-05-25

21世纪大学英语第三册课后习题参考答案

21世纪大学英语第三册课后习题参考答案,和好用。到了大学里英语书其实是很重要的,希望大家能够重视它~

2009-04-01

Django Web开发指南

Django Web开发指南 Python Web Framework

2012-11-05

云计算与分布式系统_从并行处理到物联网

云计算与分布式系统_从并行处理到物联网 云计算入门必看

2013-05-24

编程珠玑2(英文)

中文版翻译的太垃圾了,还是看英文版比较好

2013-05-25

深入理解linux内核【第三版-中文】

这本书的经典不言而喻,需要下非常大的功夫看这本书,最近正在研读

2013-05-24

空空如也

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

TA关注的人

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