摘要: 设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别。 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用户都会生效: etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执 阅读全文
posted @ 2017-08-24 15:04 sold_out 阅读(271) 评论(0) 推荐(0) 编辑
摘要: CHAR和VARCHAR的区别 存储方式和检索方式不同: 1、CHAR固定长度字符类型。CHAR存储定长数据,CHAR字段上的索引效率高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 缺点是浪费空间,检索时CHAR列删除尾部空格,若果要保留程序需要对 阅读全文
posted @ 2017-08-24 14:58 sold_out 阅读(201) 评论(0) 推荐(0) 编辑
摘要: MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB( 阅读全文
posted @ 2017-08-24 14:52 sold_out 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。 在MyS 阅读全文
posted @ 2017-08-24 14:50 sold_out 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 导读 在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议。 二者区别 备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法: CREATE TABLE t( aid int unsigned not 阅读全文
posted @ 2017-08-24 14:47 sold_out 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 1、reinterpret_cast (expression) type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。 它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,再把该整数转换成原类型的指针,还可以得到原先的指针值)。 static_ 阅读全文
posted @ 2017-08-24 14:42 sold_out 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 对n较大的排序记录。一般的选择都是时间复杂度为O(nlog2n)的排序方法。 时间复杂度来说: (1)平方阶(O(n2))排序 各类简单排序:直接插入、直接选择和冒泡排序;快速排序 (2)线性对数阶(O(nlogn))排序 堆排序和归并排序;(避免最坏情形的快排:平均O(nlogn)) (3)O(n 阅读全文
posted @ 2017-08-24 14:37 sold_out 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。其实我们很容易发现,在还未完全确 阅读全文
posted @ 2017-08-24 14:33 sold_out 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数: (1)一个对象以值传递的方式传入函数体 (2)一个对象以值传递的方式从函数返回 (3)一个对象需要通过另外一个对 阅读全文
posted @ 2017-08-24 14:11 sold_out 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 三大特性是:封装,继承,多态 所谓封装 就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些 阅读全文
posted @ 2017-08-24 14:06 sold_out 阅读(1343) 评论(0) 推荐(0) 编辑
摘要: 当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。 静态数据成员的用途之一是统计 阅读全文
posted @ 2017-08-24 13:42 sold_out 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 对于C++中经常出现的函数名称相同但是参数列表或者返回值不同的函数,主要存在三种情况: 1.函数重写(override) 函数重载主要实现了父类与子类之间的多态性,子类中定义与父类中名称和参数以及返回值都相同的虚函数。 1)重写的函数不能是static函数,必须是virtual函数,即 阅读全文
posted @ 2017-08-24 13:36 sold_out 阅读(1974) 评论(0) 推荐(0) 编辑
摘要: 一个由C/C++编译的程序除了存放函数二进制代码的程序代码段(code段)外,数据占用的内存大致分为以下几个部分: 1、栈区(stack) 存放局部变量、函数参数、返回数据、返回地址等。系统自动分配释放,其操作方式类似于数据结构中的栈。 需要注意的有三点: 第一,退栈后销毁进栈时定义数据,请看下面这 阅读全文
posted @ 2017-08-24 13:16 sold_out 阅读(1144) 评论(0) 推荐(0) 编辑
摘要: C++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化。 ★ 相同点: 1. 都是地址的概 阅读全文
posted @ 2017-08-24 12:28 sold_out 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 野指针,也就是指向不可用内存区域的指针。如果对野指针进行操作,将会使程序发生不可预知的错误,甚至可能直接引起崩溃。 野指针不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是野指针是很危险的,也具有很强的掩蔽性,if语句对它不起作用。 造成野指针的 阅读全文
posted @ 2017-08-24 12:22 sold_out 阅读(1319) 评论(0) 推荐(0) 编辑
摘要: OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。 完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥 阅读全文
posted @ 2017-08-24 12:18 sold_out 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。 程序的运行结果是: A Hello 为什么在a.c中定义的全 阅读全文
posted @ 2017-08-24 12:10 sold_out 阅读(103917) 评论(11) 推荐(16) 编辑
摘要: C++中值传递、指针传递、引用传递的总结 指针传递和引用传递一般适用于:函数内部修改参数并且希望改动影响调用者。对比值传递,指针/引用传递可以将改变由形参“传给”实参(实际上就是直接在实参的内存上修改,不像值传递将实参的值拷贝到另外的内存地址中才修改)。指针/引用传递的另外一种用法是:当一个函数实际 阅读全文
posted @ 2017-08-24 12:05 sold_out 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: 为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 阅读全文
posted @ 2017-08-24 12:01 sold_out 阅读(420) 评论(0) 推荐(1) 编辑
摘要: C++内存区域分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区。 栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。 堆:由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new对应一个delete。如果 阅读全文
posted @ 2017-08-24 11:01 sold_out 阅读(2578) 评论(0) 推荐(0) 编辑