自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 【MySQL】SQL语句(数据定义语言-DDL+数据操作语言-DML+数据查询语言-DQL+数据控制语言-DCL)

SQL语句 1). SQL语句可以单行或多行书写,以分号结尾。 2). SQL语句可以使用空格/缩进来增强语句的可读性。 3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。 4). 注释: 单行注释:-- 注释内容 或 # 注释内容 多行注释:/* 注释内容 */ 分类 说明 DDL 数据定义语言,用来定义或修改(重定义)数据库对象(数据库,表, 字段) DML 数据操作语言,用来对数据库表中的数据进行增删改 DQL 数据查询语言,用来查询数据库中表的记录

2022-04-08 10:16:32 812

原创 linux下的代码是如何执行的 — — gcc

gcc工作的流程 第一步: 进行预处理 gcc -E hello.c 第二步: 生成汇编文件 gcc -S hello.i 第三步: 生成目标代码 gcc -c hello.s 注意:前三步-E、-S、-c未用-o指定生成得文件名时,会自动根据源文件名匹配 第四步: 生成可以执行文件 gcc hello.o -o hello 第五步: 执行 ./hello 一步完成,直接将源文件生成一个可以执行文件,如果不指定输出文件名字, gcc编译器会生成一个默认的可以执行a.out gcc -c hello

2022-04-08 10:15:57 1678

原创 【网络编程】UDP+本地套接字

UDP 原理 TCP:传输控制协议 安全可靠 丢包重传 面向连接 UDP:用户数据报协议 不安全不可靠 丢包不重传 快 不面向连接 TCP通信流程: 服务器:创建流式套接字 绑定 监听 提取连接 读写 关闭 客户端:创建流式套接字 连接 读写 关闭 收发数据 read recv write send UDP通信流程: 服务器:创建报式套接字 绑定 读写 关闭 客户端:创建报式套接字 读写 关闭 发数据 ssize_t sendto(int sockfd, const void *buf, size_t

2022-04-08 10:15:18 386

原创 【网络编程】深度好文(I/O复用:select、poll、epoll)

1.I/O模型 阻塞等待 多进程、多线程实现的并发,消耗资源,cpu未充分利用 系统为每个并发的客户分配一个进程,该进程只处理该客户信息。由于IO事件的时间较慢,所以进程通常都是阻塞在IO处,浪费系统资源,cpu未充分利用。 非阻塞等待(轮询) 只有一个进程,依次轮询每个连接套接字connfd的状态。状态发生改变时,应用层进行处理。浪费cpu(轮询) 多路I/O复用 只有一个进程,所有套接字(包括listenfd和connfd)都交给内核监听,套接字状态发生时,通知应用层处理。 内核监听的函数通常有:s

2022-04-07 21:11:40 360

原创 【网络编程】C/S模型通信过程 — — TCP

TCP的11种状态 11种状态:LISTEN、SYN_SENT、SYN_RCVD、ESTABLISHED、CLOSING、FIN_WAIT_1、CLOSE_WAIT、FIN_WAIT_2、LAST_ACK、TIME_WAIT、CLOSED 过程:CLOSEED->LISTEN->SYN_SENT->SYN_RCVD->ESTABLISHED->…->FIN_WAIT_1->CLOSE_WAIT->FIN_WAIT_2->LAST_ACK->TIME

2022-04-07 21:10:12 1090

原创 【网络编程】并发服务器 — — fork、thread ## fork()

pid_t fork(void);//创建一个进程,返回一个文件描述符 //文件描述符<0(或者==-1),进程创建失败 //文件描述符==0,表示为子进程 //文件描述符>0,表示为父进程 int main () { pid_t fpid; //fpid表示fork函数返回的值 int count = 0; fpid = fork(); if (fpid < 0) printf("进程创建失败"); else if (fpid .

2022-04-07 21:06:58 508

原创 【c++】STL容器深度好文(vector+deque+stack+queue+list+set+map+string)

vector /*vector容器 vector数据结构和**数组非常相似**,也称为**单端数组** vector容器的迭代器是支持随机访问的迭代器 vector与普通数组区别:不同之处在于数组是静态空间,而vector可以**动态扩展** 动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间 v.begin() -- 指向第一个数据位置的迭代器 v.end() -- 指向最后一个数据的后一个位置的迭代器 v.rend() -...

2022-04-07 21:04:54 293

原创 【c++】继承+多态+虚函数+运算符重载

继承 继承的好处:减少重复的代码 语法: class 子类名:继承方式 父类名 子类(派生类)父类(基类) 派生类中的成员,包含两大部分:一类是从基类继承过来的,一类是自己增加的成员。 继承方式一共有三种: 1.公共继承 public 继承下来的成员属性不改变 2.保护继承 protected 继承下来的成员属性都变为protected 3.私有继承 private 继承下来的成员属性都变为private 三种继承方式下,父类的私有成员都不可以继承 创建一个子类时:先调用父类构造函数,再调用子类构

2022-04-07 21:02:52 933

原创 【c++】类和对象基础(拷贝函数、构造函数、深拷贝、浅拷贝、对象成员、this指针、const修饰函数和对象、友元)

类的创建、赋值、权限 C++面向对象的三大特性为:封装、继承、多态 语法:class 类名{ 访问权限: 属性 / 行为 }; 访问权限 公共权限 public 成员 类内可以访问,类外可以访问 保护权限 protected 成员 类内可以访问,类外不可访问 子类可以访问父类中的保护内容 私有权限 private 成员 类内可以访问,类外不可访问 子类不以访问父类中的私有内容 stuct和class的比较 在C++中 struct和class唯一的区别就在于默认的访问权限不同 struct

2022-04-07 21:01:33 1016 1

原创 【c++】引用+常量指针/指针常量+指针函数/函数指针+函数高级

引用 引用:**给变量起一个别名** 语法:数据类型 &别名=原名; 引用一定要初始化 int &c;//错误,要让b初始化引用指向a 引用初始化后,不能更改 int &c=a; int &c=b;//错误,不能更改引用的指向 不要返回局部变量的引用,值会改变 函数的返回值为引用的时候,函数调用可以作为左值(等式左边) 引用本质:指针常量;指向不可以修改,指向的值可以修改 int &ref = a;//自动转换 int* const ref = & a;/

2022-04-07 21:00:16 497

原创 【c++】内存分区模型

C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量(const修饰的常量,包含字符串常量),该区域的数据在程序结束后由操作系统释放(生命周期长) 栈 区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆 区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 分区的意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程 程序运行前:代码区,全局区 程序运行后:栈区,堆区 #incl

2022-04-07 20:59:05 680

原创 【c++】指针+结构体

指针 定义 数据类型 *p; 声明 p=地址,p为地址,*p为地址对应的值 定义并声明 数据内心 *p=地址; 空指针:指针变量指向内存中编号为0的空间,用于初始化指针变量,空指针指向的内存是不可以访问的 int *p = NULL; 野指针:指针变量指向非法的内存空间,程序中避免用野指针 常量指针:const int *p = &a; //指针的指向可以改,但不能通过该指针来修改指向内存的值 指针常量:int * const p = &a; //指针的指向不能改,但指针指向的内存的

2022-04-07 20:58:08 1927

原创 【c++】数据类型+运算符类型+程序流程结构+数组+函数

数据类型 注释: // /**/ 变量: 字母数字下划线 常量:define,const 关键字 标识符:标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。 在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名, 以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。 数据类型(意义:给变量分配合适的内存空间) 整型:short 2B (-32768`32767) int 4B lon

2022-04-07 20:56:59 487

空空如也

空空如也

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

TA关注的人

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