总结
WangJ_F_
这个作者很懒,什么都没留下…
展开
-
c++函数重载原理详解
函数重载目录:什么是函数重载? 演示代码: 代码分析: 为什么c++支持重载而C语言不支持重载? C++中能否将一个函数按照C的风格来编译? c++函数重载底层处理什么是函数重载?C++允用同一函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同。这就是函数重载。即...原创 2018-08-05 13:57:44 · 528 阅读 · 0 评论 -
Linux:进程间通信(匿名管道命名管道)(共享内存,消息队列,信号量)
目录进程间通信的介绍管道匿名管道原理:代码实现匿名管道特性实现管道符 | 命名管道命名管道特性代码实现管道读写规则操作系统中ipc的相关命令共享内存(重点)生命周期:代码实现代码实现获取数据消息队列信号量 进程间通信的介绍进程间通信:进程之间的沟通交流 因为进程的独立性,所以导致进程间的数据通信将变得非常麻烦。...原创 2018-11-07 18:36:45 · 1633 阅读 · 0 评论 -
Linux:多线程(线程概念,优缺点)(线程创建,等待,分离,查看)
目录线程概念线程是什么?posix线程库进程线程对比线程优点线程缺点进程的优点共享私有线程控制线程的创建线程ID如何查看如何获得线程id线程终止(退出)pthread_exitpthread_cancel线程等待线程分离线程概念线程是什么?在一个程序中的一个执行路线就叫做线程(thread),更准确的...原创 2018-11-10 17:26:10 · 719 阅读 · 0 评论 -
Linxu:进程信号:(信号的产生方式)(信号的注册,阻塞屏蔽,注销,不同的处理方式)(重入函数)(volatile)(竞态条件)
目录 信号的基本概念信号的产生方式产生信号Core Dump信号的注册信号的阻塞与屏蔽信号阻塞屏蔽验证代码信号的注销信号的处理信号的处理方式信号的忽略处理代码实现信号的自定义处理代码实现(sigcb)信号的自定义处理代码实现(sigaction推荐)信号的捕捉流程: 可重入函数不可重入函数可重入代码演示 volati...原创 2018-11-08 12:20:57 · 670 阅读 · 0 评论 -
Linux:基础IO(文件描述符分配规则)(重定向)(inode)(软硬链接)
目录文件描述符的分配规则重定向原理FILE总结理解文件系统inode是什么inode内容硬链接软链接软硬链接区别:文件描述符的分配规则最小分配原则通过代码理解://这是一个演示文件描述符分配的demo//1:文件描述符是一个数字,并且这个数字是一个结构体的下标//分规则:寻找最小的未使用下标#include<stdio.h&g...原创 2018-11-05 13:53:47 · 1227 阅读 · 0 评论 -
Linxu:线程(线程安全,同步与互斥,生产消费者模型,互斥量,条件变量,信号量,读写者模型,读写锁,自旋锁)
目录线程的安全线程的同步与互斥同步与互斥方式生产者与消费者模型:mutex(互斥量)代码演示死锁条件变量初始化等待条件满足唤醒等待销毁条件变量使用规范posix信号量信号量是什么?与条件变量的区别初始化信号量等待信号量销毁信号量发布信号量代码演示读写者模型:读写锁读写锁接口初始化和销毁解锁和加锁...原创 2018-11-16 14:53:35 · 371 阅读 · 0 评论 -
Linux:进程间关系与守护进程(进程组,作业,会话,守护进程)
目录进程组作业作业有关的信号进程组与作业的区别:会话作业控制守护进程(精灵进程) 创建孤儿进程进程组是一个或多个进程的集合每个进程组除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。 通常他们与同一个作业有关,可以接受来自同一端的各种信号。 每个进程组有唯一一个进程组ID, 进程组中有一个进程是组长进程,进...原创 2018-11-16 17:19:18 · 402 阅读 · 0 评论 -
网络基础(网络发展,协议,OSI和TCP/IP模型)(网络层:IP协议,网段划分)(数据链路层:以太网,MAC地址,ARP协议,MTU等)
目录网络发展网络协议两个出名的通信协议结构模型OSI七层参考模型TCP/IP五层参考模型网络通信中的数据(协议的封装与应用)封装与分用网络层IP协议IP协议头格式网段划分路由选择数据链路层认识以太网以太网数据帧格式MAC地址ARP协议ARP数据报格式MTU其他重要协议DNS:ICMP:ping命令网络发展...原创 2018-11-16 18:02:35 · 811 阅读 · 0 评论 -
Linux:网络编程套接字(tcp /udp,网络字节序,大小端,套接字(相关函数),tcp /udp简单的通信端客户端通信代码,三次握手四次挥手)
目录认识ip地址端口号port:传输层协议tcp(传输控制协议)udp(用户数据报协议 )网络字节序大小端判断大小端代码转换网络端口函数转换网络ip地址socket(套接字编程)使用函数 struct sockaddr_inmyaddr参数初始化监听listen()accept()一个非常简单的udp服务端程序服务端:用...原创 2018-11-17 21:31:12 · 843 阅读 · 0 评论 -
Linux:高级IO(五中基本IO模型)(非阻塞:fcntl,dup/dup2)(多路转接的就绪事件通知机制:select/poll/epoll)
目录五种基本IO模型总结:同步异步阻塞非阻塞非阻塞IOfcntl重定向dup/dup2系统调用多路转接selectfd_set返回值执行过程select优缺点socket就绪条件读就绪读就绪poll优点缺点epollepoll系统调用epoll_createpoll_ctlstruct epoll_...原创 2018-11-27 21:51:26 · 727 阅读 · 0 评论 -
面试:海量数据总结
目录1:给⼀一个超过100G大小的文件,文件中存着IP地址, 设计算法找到出现次数最多的IP地址,如何找到top K的IP?2:给定100亿个整数,设计算法找到只出现一次的整数3:给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集4:1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所有整数5:给两个文件,分别有100亿个query,...原创 2019-04-05 15:12:26 · 422 阅读 · 0 评论 -
c++:深入理解new
首先总结new/malloc区别:new是操作符,malloc是函数 是否需要指定内存大小 int* ptr = new a;int* ptr = (int *)malloc(sizeof(int));new操作符不需指定申请内存大小malloc必须显示的指出所需内存尺寸 内存分配失败时返回值 malloc失败会返回空指针,所以malloc分配后需要判断是否分配成功...原创 2019-04-27 14:52:39 · 707 阅读 · 0 评论 -
apache:ab压力测试工具的简单使用及解析
想对自己写的简单http服务器进行压力测试,网上主要是是ab或webbench,ab的测试结果较为全面安装命令:yum -y install httpd-tools测试命令 ab -c 10 -n 10 http://www.baidu.com/(简单测试使用这两个参数就够用了)-n表示总共发送的请求数-c表示每次并发的请求数测试结果翻译:服务器软件:BW...原创 2019-05-27 13:13:53 · 342 阅读 · 0 评论 -
Cookie与Session流程及区别
目录1:实现状态保持的原理CookieSessioncookie和session的本质区别如何寻找自己浏览器的cookie1:实现状态保持的原理登录一个网站时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的CookieCookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。 Co...原创 2019-06-04 19:18:59 · 359 阅读 · 0 评论 -
项目构建工具入门:CMake工作理解 和 入门使用教程
理解开始接触linux时,编译代码习惯上gcc编译c代码,g++编译c++。(gcc 将.c 按c编译,对.cpp按c++编译,g++将.c/.cpp都按照c++编译)当写一个较大的文件时,通常分为多个子文件,这时编译就会非常麻烦!所以出现了批处理工具make,通过makefile中的命令进行连接和编译。如果文件变动较大,每次都要修改makefile文件,也是非常麻烦。这时...原创 2019-07-13 13:00:16 · 485 阅读 · 0 评论 -
Linux:基础IO(cIO库函数详细介绍)(IO系统调用接口详细介绍)(两者关系:文件描述符和文件指针)
目录c系统中的库函数:fopen:打开文件fclose:关闭文件fwrite:向文件写入一个数据块fread:读写fprintf:格式化输出到一个流/文件中fseek:移动/跳转 到当前 读取/写入位置fgets:获取字符串fput:把字符串写入到指定的流( stream) 中,但不包括空字符。rewind改变内部指针代码演示IO系统调用接口op...原创 2018-11-03 20:57:57 · 860 阅读 · 0 评论 -
Linux:进程控制(fork/vfork)(进程终止:exit/_exit)(进程等待:wait/waitpid/status)(进程替换:exec函数/shell实现)
目录 进程创建fork原理fork函数返回值fork用法和调用失败的原因vfork函数总结进程终止进程退出场景:进程常见退出方法return退出_exit函数exit函数总结:进程等待进程等待的重要性进程等待的方法wait方法waitpid方法总结获取子进程status总结:进程程序替换替换原理替换...原创 2018-10-30 21:14:57 · 1455 阅读 · 0 评论 -
Liunx:环境基础开发工具使用总结(基本操作命令及使用详解)
目录1vim的基本概念2vim的基本操作3vim正常模式命令集1:插入模式2:移动光标3:删除文字4:复制5:替换6:撤销7:更改8:跳到指定行4vim末行模式命令集分屏操作编译器的使用1:背景知识2:gcc如何完成调试器gdb的使用开始使用自动化构建工具make/Makefile背景原理进度条程序软件管理...原创 2018-10-25 21:32:17 · 728 阅读 · 0 评论 -
c/c++测试运行函数时间的方法
测试函数:void test(){ long i; //long类型比int类型表示范围更大 for (i = 0;i < 1600000000;i++) { long a = 0; a = a + 1; }}在标准C/C++中,最小的计时单位是1毫秒。第一种方式:time/difftime...原创 2018-08-14 11:38:53 · 3537 阅读 · 0 评论 -
总结:宏函数和自定义函数的区别
宏函数和自定义函数的区别?自定义函数:#include<stdio.h> int max(int a,int b){ return a > b ? a : b ;}int main(){ printf("%d\n", max(1,2)); return 0;}宏函数:#include<stdio.h>#define...原创 2018-08-02 09:58:01 · 636 阅读 · 0 评论 -
内置函数详解(inline)
内置函数,又称内嵌函数 或 内联函数。调用函数时需要一定的时间和空间开销,如图表示函数调用过程:1:程序先执行a函数调用之前的语句2:流程的控制转移到被调用函数入口3:执行被调用函数的中的语句4:流程返回调用函数的下一条语句,将函数返回值带回5:接着执行主函数中未执行的语句 这样要求在转去调用函数之前,要先记下当时执行的指令地址,还要记下当时有关信息,...原创 2018-08-02 14:58:28 · 2960 阅读 · 0 评论 -
c++:引用原理详解
引用原理详解:目录引用原理详解:什么是引用变量?引用要点分析:本质说明:数组的引用和引用数组:引用传参:常引用:引用对占不占存储空间:引用于指针的区别:什么是引用变量?对一个数据建立“引用”,它的作用是为一个变量起一个别名。类型&引用变量名 = 引用实体int a; //定义a是整形变量int &b...原创 2018-08-08 13:25:26 · 3006 阅读 · 0 评论 -
new/delete和malloc/free的区别详解
目录 new/delete的用法:malloc和free的用法:new和malloc的区别:free和delete用法:new/delete和malloc/free的区别详解 在软件开发中,常常需要动态地分配和撤销内存空间,在C语言中利用库函数malloc和free来分配和撤销内存空间。c++提供了较简单而功能较强的运算符new和delete来取代mal...原创 2018-09-11 23:50:04 · 401 阅读 · 0 评论 -
c++:类和对象知识点详解
目录 类引入类的定义类成员的访问权限类的作用域类的实例化类对象this指针类引入在c语言中“数据”和“处理数据的操作(函数)”是分开的,语言本身并没有支持“数据和函数”的关联性。在c++中,结构体不仅可以定义变量,也可以定义函数。类的定义类是一种用户自定义的数据类型,用于组织数据和操作数据。类是面向对象程序设计的基础。定义类的格式一般如下:...原创 2018-09-05 20:12:40 · 797 阅读 · 0 评论 -
c++:类的六个默认函数及相关知识点详解
目录构造函数:构造函数体赋值:列表初始化:构造函数作用:析构函数:拷贝构造函数为什么拷贝构造函数的参数使用传值会引发无穷递归调用?运行算符重载5个C++不能重载的运算符是哪些?类的赋值操作符重载类的const成员函数类的取地址操作符重载 及 const修饰的取地址操作符重载类的六个默认函数构造函数 拷贝构造函数 析构函数 赋值操作符重载...原创 2018-09-09 20:35:33 · 779 阅读 · 0 评论 -
c++:深浅拷贝总结(深拷贝的传统和现代写法)
深浅拷贝区别:浅拷贝只拷贝指针,但拷贝后两个指针指向同一个内存空间; 深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝, 调用拷贝构造函数后,浅拷贝还有联系,深拷贝的两个对象完全独立。 浅拷贝类似于文件创建快捷方式,而深拷贝好比文件复制。 编译器默认提供的默认拷贝构造函数是浅拷贝,深拷贝的构造函数需自己实现。注意:浅拷贝多个对象共用一个资源,当一个对象销毁时,资源就会释放。如果...原创 2018-09-15 21:26:27 · 1700 阅读 · 0 评论 -
c++:友元函数与友元类详解
目录友元函数:友元函数说明:操作多个对象数据成员的友元函数:1:将函数声明为相关类的友元函数:2:将这个函数声明为一个类的成员函数,其他一个或多个类的友元函数友元类:友元分为:友元函数和友元类友元函数:1:友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。友元函数的...原创 2018-09-10 17:22:03 · 1086 阅读 · 0 评论 -
C++ :引用计数(reference count) 实现
referecen count 的核心思维:使用一个计数器来标识当前指针指向的对象被多少类的对象所使用(即记录指针指向对象被引用的次数)构造函数中创建类的新对象时,初始化引用计数为1; 拷贝构造函数复制指针,并使相应的引用计数增加1; 赋值操作减少左操作数所值对象的引用计数,增加右操作数所指对象的引用计数; 析构函数使引用计数减少1,并且当引用计数为1时,释放指针说指向的对象;使用引用...原创 2018-09-19 21:40:01 · 8526 阅读 · 2 评论 -
c++: 继承的详解(理解)
目录 继承的相关概念:继承权限&访问限定符赋值兼容规则(public继承)继承中的作用域:派生类的默认成员函数:【面试题】继承与友元:继承与static静态成员:继承体系下派生类的对象模型:继承的相关概念:复用:重复性的代码肯定是越少越好,随着组织越来越复杂,单纯在main()中写代码会变的越来越难以维护。而函数则更像是一个小的程序。 ...原创 2018-09-25 21:56:47 · 688 阅读 · 0 评论 -
c++:多态的详解(理解)
目录1多态概念:2多态实现:2.1虚函数2.2重写(覆盖)2.3重载,覆盖(重写),隐藏(重定义)的区别2.4多态的构成条件2.5动态绑定与静态绑定3抽象类4带有虚函数对象模型剖析1:包含有虚函数的类对象与普通类对象的区别2:虚函数表3:打印虚表5基类与派生类虚表中内容6对象模型1:虚函数调用过程2:单继承3:多...原创 2018-10-07 12:29:28 · 871 阅读 · 0 评论 -
程序地址空间:虚拟地址原理及发展过程(图解说明)
目录 简单理解的空间布局图及验证:早期的内存管理机制分段分页简单理解的空间布局图及验证:用两段代码测试一下: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 int val = 100; 5 int main() 6 { ...原创 2018-10-19 00:29:25 · 2608 阅读 · 0 评论 -
C++:函数模板(理解)
目录泛型编程函数模板1:函数模板概念2:模板格式:3函数模板原理4:函数模板的实例化与类模板实例化5:函数模板的匹配原则类模板1类模板的定义格式2类模板的实例化3非模板类型参数4类模板的特化5类模板特化之类型萃取6模板分离编译泛型编程泛型编程最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用...原创 2018-10-24 00:06:17 · 382 阅读 · 0 评论 -
分布式版本控制工具:Git (原理图解及使用教程 ,包含所有基础命令操作的理解)
目录前言版本控制神器git集中式版本控制与分布式版本控制图解图解快照原理图解git三种状态git命令操作解析用户身份检查个人设置获取git仓库git仓库中记录变更查看当前文件状态暂存已修改的文件提交变更拉取分支查看分支,查看git提交记录分支的使用分支的总结分支命令分支冲突暂时保存哈希关于各个部分如何撤回的问题...原创 2019-07-26 19:42:32 · 1390 阅读 · 0 评论