08 2016 档案

摘要:TCP的三次握手和四次挥手 http://www.cnblogs.com/Kobe10/p/5770585.html Tcp和Udp的区别 TCP:TCP是面向连接的,进行的是全双工通信(两个方向同时进行通信),提供可靠的服务,面向字节流的 UDP:UDP不是面向连接的,提供不可靠的交付,它传输的是 阅读全文
posted @ 2016-08-23 10:18 Kobe10 阅读(992) 评论(0) 推荐(0)
摘要:自己整理了一些常见的面试题,频率挺高的都是,而且感觉这里这些基础的东西都会问,自己过几天也要面试了,所以发上来让大家一起看看,有什么错误的地方望提醒我纠正。 32位数据类型以及sizeof大小、 char:1; short int:2; int:4; long:4; long long:8; flo 阅读全文
posted @ 2016-08-21 20:24 Kobe10 阅读(2098) 评论(0) 推荐(1)
摘要:deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque类常用的函数如下。 (1) 构造函数 deque( 阅读全文
posted @ 2016-08-17 16:18 Kobe10 阅读(1108) 评论(0) 推荐(0)
摘要:相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。也就是说,对于任何位置的元素插入或删除,list永远是常数时间。 常用函数 (1) 构造函数 list<Elem> c 阅读全文
posted @ 2016-08-17 15:05 Kobe10 阅读(1887) 评论(0) 推荐(1)
摘要:效果截图 阅读全文
posted @ 2016-08-17 13:51 Kobe10 阅读(9539) 评论(0) 推荐(2)
摘要:vector类常用的函数如下所示: 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t vector( 阅读全文
posted @ 2016-08-17 10:31 Kobe10 阅读(572) 评论(0) 推荐(0)
摘要:一、为什么需要traits编程技术 前面说了很多关于traits的光荣事迹,但是却一直没有介绍traits究竟是个什么东西,究竟是用来干什么的?traits在英文解释中就是特性,下面将会引入traits技术的作用,一步一步地揭开其神秘的面纱。 1.1 内嵌类型声明 1.1.1 以迭代器所指对象的类型 阅读全文
posted @ 2016-08-16 17:14 Kobe10 阅读(947) 评论(0) 推荐(0)
摘要:为了学习python3.5的tkinter,于是我去官网找了找相关部件的一些文档,读起来有点绕口,觉得还是自己来实践实践,看看视频感觉用处会更大,然后就有了下面的一部分常用的总结, 查看tkinter类库发现它主要是分为两个部分,一个是Widget classes(部件类),另一个是Mixins(多 阅读全文
posted @ 2016-08-15 17:44 Kobe10 阅读(14508) 评论(0) 推荐(0)
摘要:僵尸进程处理 僵尸进程和孤儿进程: 基本概念:我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者w 阅读全文
posted @ 2016-08-15 10:07 Kobe10 阅读(849) 评论(3) 推荐(0)
摘要:TCP是个流协议,它存在粘包问题 产生粘包的原因是: TCP所传输的报文段有MSS的限制,如果套接字缓冲区的大小大于MSS,也会导致消息的分割发送。 由于链路层最大发送单元MTU,在IP层会进行数据的分片。 应用层调用write方法,将应用层的缓冲区中的数据拷贝到套接字的发送缓冲区。而发送缓冲区有一 阅读全文
posted @ 2016-08-14 20:41 Kobe10 阅读(534) 评论(0) 推荐(0)
摘要:一开始个人对于三次握手和四次挥手这个东西还是有时候会忘记,可能理解的不是非常深刻,所以今天就自己动手来记录一下这个知识点,方便以后查看。总结完之后发现总结的还是可以的哈哈。 三次握手建立连接 第一次:客户端和服务器端一开始都是关闭的。①:当想建立连接的时候,客户端首先主动打开,然后服务器端被动打开。 阅读全文
posted @ 2016-08-14 17:28 Kobe10 阅读(1158) 评论(1) 推荐(1)
摘要:Socket地址复用 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, con 阅读全文
posted @ 2016-08-14 15:51 Kobe10 阅读(1502) 评论(0) 推荐(0)
摘要:IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中 LINUX结构下的常用结构,一般创建套接字的时候都要将这个结构里面的值进行初始化 struct sockaddr_in { sa_family_t sin_family 阅读全文
posted @ 2016-08-14 14:03 Kobe10 阅读(9088) 评论(0) 推荐(1)
摘要:函数 --函数 --系统函数 http://moodlove.blog.hexun.com/85072514_d.html SELECT ROUND(3.141,2); 字符串函数 http://blog.csdn.net/primer_programer/article/details/40410 阅读全文
posted @ 2016-08-13 17:50 Kobe10 阅读(186) 评论(0) 推荐(0)
摘要:内连接查询 意义:找到表和表之间的关系或者是桥梁。连接查询是查询两个或者两个以上的表时使用的。 JOIN|CROSS JOIN| INNER JOIN 通过ON 连接条件(这三个方式都行)一般用JOIN进行连接,ON后面接连接条件 --查询cms_user id,username 省份表中和用户表中 阅读全文
posted @ 2016-08-13 10:41 Kobe10 阅读(431) 评论(0) 推荐(0)
摘要:插入数据 --测试插入数据 INSERT 表名 VALUES|VALUE(值...)--当没有指定插入顺序的时候按照表的原来的顺序进行插入 INSERT 表名(需要赋值的字段名称) VALUES|VALUE(值...)--这里的值必须和前面需要赋值的字段对应 INSERT 表名(需要赋值的字段名称, 阅读全文
posted @ 2016-08-12 16:32 Kobe10 阅读(266) 评论(0) 推荐(0)
摘要:修改表名 --创建用户表 CREATE TABLE IF NOT EXISTS user7( id SMALLINT UNSIGNED KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password CHAR(20) NOT NU 阅读全文
posted @ 2016-08-12 11:02 Kobe10 阅读(235) 评论(0) 推荐(0)
摘要:主键的测试 PRIMARY KEY(PRIMARY可以省略) --查看创建表的标的定义,可以查看主键 SHOW CREATE TABLE user1; INSERT user1 VALUES(1,'king');--主键不能重复 INSERT user1 VALUES(13,'king'); --复 阅读全文
posted @ 2016-08-12 08:35 Kobe10 阅读(4895) 评论(0) 推荐(1)
摘要:登录的常用参数 mysql -uroot -p 之后再加上密码 mysql -uroot -p+密码 这个方法不安全 mysql -hlocalhost -uroot -p 之后再加上密码 -P+端口号 默认的端口号是3306 -V输出版本信息 修改命令提示符:--prompt=_____;这里有四 阅读全文
posted @ 2016-08-12 07:58 Kobe10 阅读(209) 评论(0) 推荐(0)
摘要:数据表 必须要有表结构,一定要有列.help +关键字 查找帮助 创建数据表 CREATE TABLE [IF NOT EXISTS ] tbl_name(字段名称 字段类型 [完整的约束条件]...)ENGINE=引擎名称 CHARSET='编码方式'; mysql中的数据类型 整数类型:TINY 阅读全文
posted @ 2016-08-11 17:50 Kobe10 阅读(485) 评论(0) 推荐(0)
摘要:创建数据库 CAEATE {DATABASE|SCHEMA}[IF NOT EXISTS] db_name ;这里面{}中的是二选一的,[]中的是不是必须的 这里创建的时候可以加上编码方式。 mysql> CREATE DATABASE IF NOT EXISTS maizi3 DEFAULT CH 阅读全文
posted @ 2016-08-11 16:16 Kobe10 阅读(198) 评论(0) 推荐(0)
摘要:一.逻辑运算符 1.& 位与运算 1) 运算规则 位与运算的实质是将参与运算的两个数据,按对应的二进制数逐位进行逻辑与运算。例如:int型常量4和7进行位与运算的运算过程如下: 4=0000 0000 0000 0100 &7 =0000 0000 0000 0111= 0000 0000 0000 阅读全文
posted @ 2016-08-11 09:41 Kobe10 阅读(601) 评论(1) 推荐(2)
摘要:了解隐式接口和编译期多态 编译期多态和运行期多态 运行期多态就好比是virtual函数再运行的时候才确定该virtual函数该被绑定为哪个函数,运行的时候才确定函数类型。 编译期多态就好比是泛型编程和模板编程中,在编译的时候才确定哪个函数该被调用,根据函数的类型去确定。 显示接口和隐式接口 显示接口 阅读全文
posted @ 2016-08-07 10:04 Kobe10 阅读(358) 评论(0) 推荐(0)
摘要:确定你的public继承塑模出is-a关系 public继承和is-a的之间的等价关系很简单。例如动物和鸟,鸟一定是动物,而动物不一定是鸟。 public继承意味着is-a。适用于base classes身上的每一件事情也是一定适用于派生类身上的,因为每一个派生类对象也都是一个base classe 阅读全文
posted @ 2016-08-07 08:05 Kobe10 阅读(320) 评论(0) 推荐(0)
摘要:尽可能的延后变量定义式出现的时间 产生问题:定义一个变量,其含有构造函数和析构函数。那么当代码运行到它的时候,就必须会产生构造成本和析构成本,如果这个变量最终未使用,那么就是浪费了资源空间,所以应该尽可能的延后变量定义式的时间 解决方法:不只是应该延后变量的定义,知道非得使用该变量的前一刻为止,甚至 阅读全文
posted @ 2016-08-06 10:42 Kobe10 阅读(191) 评论(0) 推荐(0)
摘要:让接口容易被正确使用,不容易被误用 好的接口容易被正确的使用,不容易被误用。你应该在你的所有接口中努力达到这些性质。 促进正确使用的办法包括接口的一致性,以及与内置类型的行为兼容 阻止误用的办法包括建立新类型,限制类型上的操作,束缚对象值,消除客户的资源管理责任 设计class犹如设计type 宁以 阅读全文
posted @ 2016-08-05 15:32 Kobe10 阅读(186) 评论(0) 推荐(0)
摘要:以对象管理资源 问题产生:当一个类的一个函数返回的是一个指针,指向这个类的对象。然后有这么个函数 void f(){ my * p=createmy();返回对象的指针 ... delete p; } 因为...这个东西可能不能够删除那个指针,资源就没有办法释放了。..可能发生过早的return语句 阅读全文
posted @ 2016-08-05 09:12 Kobe10 阅读(306) 评论(0) 推荐(0)
摘要:了解C++默默编写并且调用哪些函数 一个空类,C++处理过后会默认加上一个复制构造函数,复制赋值操作符和析构函数,但是只有当这些函数被需要被调用的时候才会被C++创建,平时的话一个空类不被使用也就是一个空类了。 编译器生成的copy构造函数用法 默认的这两个函数仅仅是将对象的成员进行简单赋值。 这就 阅读全文
posted @ 2016-08-05 07:53 Kobe10 阅读(303) 评论(0) 推荐(0)
摘要:auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。 std::auto_pt 阅读全文
posted @ 2016-08-04 16:40 Kobe10 阅读(271) 评论(0) 推荐(0)
摘要:尽量以const,enum,inline替换#define 用宏定义一个常量的时候,可能会发生一些错误。当发生错误的时候你可能并不能知道这个错误具体出自哪里,因为宏定义的变量可能没有进入记号表中(symbol table)。还有就是宏定义的东西可能会盲目的置换代码中的变量(直接全部置换过去,括号可能 阅读全文
posted @ 2016-08-04 10:29 Kobe10 阅读(142) 评论(0) 推荐(0)
摘要:(1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作 它是不可写的。 (2)数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。 (3) 阅读全文
posted @ 2016-08-01 18:39 Kobe10 阅读(874) 评论(0) 推荐(0)
摘要:可重入函数主要用于多任务环境中,简单来说就是可以被中断的函数,即在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,返回控制时不会出现什么错误;也意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是 purecode(纯代码)可重入,可以允许有该函数的 阅读全文
posted @ 2016-08-01 09:33 Kobe10 阅读(1285) 评论(0) 推荐(0)
摘要:内核支持线程(Kernel Supported threads)KST OS中的所有进程(用户和内核)都是依靠内核完成的。KST也是如此,它的创建,阻塞,撤销,切换都是在内核空间实现。 优点: 内核可以同时调度同一进程中的多个线程并行执行 一个线程被阻塞了,内核可以调度随便一个进程中的其他线程占用处 阅读全文
posted @ 2016-08-01 09:26 Kobe10 阅读(497) 评论(0) 推荐(0)