自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青萍之末的博客

学无止境

原创 2020届秋招面试总结

  2019年秋招算是告一段落了,从3月份找实习开始到现在也有大半年了,个人感觉秋招就是一个不断积累经验、提升自己的过程,简单总结下就是:基础、算法、项目、实习和表达能力。 一、个人基本情况   本科双非,硕士末流985,本硕都是非科班,电子通信相关专业。个人比较爱折腾,属于闲不下来的那种,本硕阶...

2019-10-24 15:10:43 1097 12

原创 面试中常见的智力题

一、提灯过桥问题   题目:小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥? 小明和小明弟弟过桥,需...

2019-05-26 20:42:36 1712 1

原创 Linux系统中重要的命令

一、硬盘和内存相关指令 (1)df   df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。 // 命令参数: df -a:--all,显示所有的文件系统,包括虚拟文件系统。 df -B:--block-size,指定单位大小。比如1...

2019-05-05 15:23:04 261 0

转载 gdb调试详解

一、gdb调试coredump文件 二、gdb调试多线程       【Note】:

2019-05-04 19:04:58 182 0

原创 Linux系统相关的基础问题(空间、内存、库、链接、环境变量)

一、用户与内核 1、用户空间与内核空间   4G的进程地址空间被人为的分为两个部分–用户空间与内核空间。用户空间从0到3G(0xc0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。例外情况只有用户进程进行系统调用(代表用...

2019-04-28 22:11:51 160 0

转载 std::move原理实现与用法总结

文章目录一、左值与右值二、左值引用和右值引用1、std::move简介2、std::move详解3、std::move的优点   右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大语言特性之一。从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题。从语言本身讲...

2019-03-09 21:42:59 2592 0

转载 从输入URL到页面加载完成发生了什么?

文章目录一、URL二、缓存三、DNS域名解析四、TCP连接五、浏览器向服务器发送HTTP请求六、浏览器接收响应七、页面渲染八、关闭TCP连接或继续保持连接 1. 浏览器的地址栏输入URL并按下回车。 2. 浏览器查找当前URL是否存在缓存,并比较缓存是否过期。 3. DNS解析URL对应的I...

2018-12-09 19:33:45 291 0

原创 线程池和内存池

文章目录一、线程池1、线程池的概念2、线程池的组成部分3、线程池的流程4、线程池的Demo5、线程池的应用二、线程池的惊群效应1、惊群效应的概念2、惊群效应存在的问题3、线程池的惊群效应4、怎么判断发生了惊群5、如何解决惊群效应三、内存池1、内存池的概念2、内存池的流程和设计3、内存池的Demo4...

2018-11-25 15:40:24 275 0

原创 select、poll、epoll总结

一、select总结   select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(...

2018-11-08 16:37:53 361 0

原创 epoll原理详解及epoll反应堆模型

  设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个...

2018-11-08 15:40:03 29451 3

原创 TCP协议详解(TCP报文、三次握手、四次挥手、TIME_WAIT状态、滑动窗口、拥塞控制、粘包问题、状态转换图)

文章目录一、TCP报文二、三次握手三、四次挥手四、TIME_WAIT状态五、connect()、listen()和accept()三者之间的关系六、三次握手、四次挥手总结七、滑动窗口(流量控制)八、拥塞控制九、粘包问题十、TCP状态转换图 一、TCP报文 【重要的字段】: 序号:Se...

2018-10-28 16:36:33 4930 4

转载 网络协议入门

我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。北京的某一块网卡送出信号,深圳的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 为了使各种不同的计算机之间可以互联,ARPANet指定了一套计算机通...

2018-10-15 15:21:22 186 0

转载 Linux内核的五大模块

一、进程调度模块   Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。 【进程创建】:   在Linux环境编程时,一般采用fork()/vfork()函数(fork 是 创建一个子进...

2018-10-07 13:32:59 1620 0

原创 多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)

一、同步与互斥的概念   现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能: 都需要访问/使用同一种资源; 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。 【同步】:   是指散步在不同任务之间的若干程序片断,...

2018-10-06 14:06:34 29003 9

转载 Linux系统启动过程

  Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 1. 内核的引导; 2. 运行 init; 3. 系统初始化; 4. 建立终端 ; 5. 用户登录系统。 () ()    ()   () 【Note】: ...

2018-10-04 19:57:43 126 0

原创 Make和Makefile

  Makefile是一个神奇的东西,有了它只需一个make命令就可以让源文件按你的规则编译成你所想要的程序。非常简单,方便。对于Keil,VS等IDE,一般只需点一下绿色的三角按钮,就可以完成编译。但具体内部是怎么实现编译的?改动文件后如何只编译改动的文件?学完makefile就可以掌握这些东西...

2018-09-02 10:37:08 214 0

原创 gcc/g++ 编译器

一、单个源文件生成可执行程序 g++ -o helloworld helloworld.cpp $ ./helloworld //运行 hello, world 二、多个源文件生成可执行程序 1、生成共享库和静态库 (1)生成目标文件(.o) g++ -c say_hello....

2018-09-01 17:21:06 921 0

原创 Vim编辑器

Vim常用配置 set nu syntax on set autoindent set smartindent set shiftwidth=4 set tabstop=4 set softtabstop=4 set expandtab set showmatch ...

2018-09-01 16:59:42 129 0

原创 四个强大的linux文本处理工具(find、grep、sed、awk)

一、find   因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即...

2018-09-01 16:50:50 590 0

原创 C++11多线程知识点总结

一、多线程的基本概念 1、进程与线程的区别和联系 进程:进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程; 线程:是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时运行的线程。通俗理解:例如你打开微信就是打开一个进程,在微信里面和好友视频聊...

2018-07-27 11:39:42 1761 0

原创 平时刷题遇到的一些常见问题

1、头文件 #include <bits/stdc++.h> using namespace std; int main(int a...

2018-05-26 10:52:48 237 0

转载 sizeof用法总结

sizeof用法总结 以下运行环境都是一般的,在32位编译环境中 1、基本数据类型的sizeof cout<<sizeof(char)<<endl; 结果是1 cout<<sizeof(int)<<endl; ...

2017-10-02 20:36:13 191 0

转载 const、typedef和#define的用法与区别

目录 一、typedef的用法 二、#define的用法 三、const的用法 四、typedef与#define的区别 五、typedef的四个用途和两个陷阱 一、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一...

2017-09-28 21:26:33 1639 2

原创 protobuf编码和存储方式详解

文章目录一、消息结构二、Wire Type = 0时的编码和存储方式2.1 编码方式2.1.1 Varints编码2.1.2 ZigZag编码2.2 存储方式三、Wire Type = 2时的编码和存储方式3.1 编码方式3.2 存储方式四、Wire Type = 1&5时的编码和存储方式...

2020-04-22 21:23:12 131 0

原创 protobuf使用实例

文章目录 一、 二、 三、       【Note】:

2020-04-22 21:09:12 174 0

原创 protobuf语法风格

文章目录一、代码风格二、文件格式三、包四、消息类型和字段五、repeated字段六、枚举类型七、服务 一、代码风格 每一行的代码长度不要超过80。 使用两个空格进行缩进。 二、文件格式   文件命名应该采用蛇形命名法(即用下划线连接),如:lower_snake_case.proto。...

2020-04-22 10:35:10 49 0

原创 protobuf语法详解

文章目录一、包(package)二、选项(option)三、消息类型(message)3.1、常规消息类型3.1.1、字段修饰符3.1.2、字段类型3.1.2.1、标量类型3.1.2.2、枚举类型3.1.2.3、Any类型3.1.2.4、oneof类型3.1.2.5、map类型3.1.3、默认值说...

2020-04-22 10:32:13 95 0

原创 protobuf简介

文章目录一、protobuf的定义二、protobuf的优缺点1、优点2、缺点三、protobuf的使用流程1、protobuf在Linux下的安装过程2、定义proto文件3、protoc编译器4、调用接口进行序列化、反序列化四、protobuf的应用场景五、protobuf与json和XML的...

2020-04-22 10:29:01 73 0

原创 Boost库的安装与使用

一、下载Boost库   下载地址:https://www.boost.org/users/download/ 二、编译Boost库 cd boost_1_72_0 # 修改Python2.7的路径,改为:/usr/include/python2.7 vim project-config.jam ...

2019-12-28 21:15:09 117 0

转载 UML各种类图总结

文章目录一、用例图二、类图1、泛化2、实现3、关联4、聚合5、组合6、依赖7、各种类图关系三、对象图四、状态图五、活动图六、序列图-时序图1、生命线2、同步消息3、异步消息4、注释5、约束七、协作图八、构件图九、部署图 一、用例图   用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用...

2019-12-28 17:36:05 236 0

转载 接口隔离模式之适配器模式(Adapter)

文章目录一、概念二、动机三、适配器模式四、类图结构五、要点总结 一、概念   将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。—《设计模式》Gof 二、动机   在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在...

2019-12-24 19:32:18 93 0

转载 接口隔离模式之代理模式(Proxy)

文章目录一、概念二、动机三、源代码讲解四、使用代理模式进行改进五、类图结构六、要点总结 一、概念   为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。—《设计模式》Gof 二、动机   在面向对象系统中,有些对象由于某种原因(比如对象创建开销很大或者某些操作需要安全控制或者需要进程...

2019-12-24 17:24:54 86 0

转载 对象性能模式之单例模式(Singleton)

文章目录一、概念二、动机三、单例模式的实现四、类图结构五、要点总结 一、概念   保证一个类仅有一个实例,并提供一个该实例的全局访问点。—《设计模式》GoF 二、动机   在软件系统中,经常有这样一个特殊的类,必须保证它们在系统中只存在一个示例,才能确保他们的逻辑正确性、以及良好的效率。如何绕过常...

2019-12-24 17:10:10 80 0

转载 对象创建模式之抽象工厂模式(Abstract Factory)

文章目录一、概念二、动机三、源代码讲解四、使用抽象工厂模式进行改进五、类图结构六、要点总结 一、概念   提供一个接口,让该接口负责创建一系列“相关或相互依赖的对象”,无需指定它们具体的类。 —《设计模式》Gof 二、动机   在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于...

2019-12-24 16:59:22 68 0

转载 对象创建模式之工厂方法模式(Factory Method)

文章目录一、概念二、动机三、源代码讲解四、使用工厂方法模式进行改进五、类图结构六、要点总结 一、概念   定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。 —《设计模式》Gof 二、动机   在软件系统中,...

2019-12-24 16:47:13 50 0

转载 单一职责模式之桥模式(Bridge)

文章目录一、概念二、动机三、源代码讲解四、使用桥模式进行改进五、类图结构六、要点总结 一、概念   将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。 ——《设计模式》GoF 二、动机   由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个维度的变化。   ...

2019-12-24 16:35:50 45 0

转载 win10关掉扩展屏幕后,打开原来在扩展屏幕上的程序后主屏幕找不到怎么办?IIS扩展屏后断开扩展屏主屏看不到

  一般可以这样操作,按Alt+空格,然后按M,然后用上下左右键把窗口移动到能看到的地方,再按回车。有些第三方的软件可能不能用,大部分都可以这样做。 ...

2019-12-24 12:28:39 282 0

转载 单一职责模式之装饰模式(Decorator)

文章目录一、概念二、动机三、源代码讲解四、使用模板方法进行改进五、类图结构六、要点总结七、应用场景 一、概念   动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。——《设计模式》GoF 二、动机...

2019-12-24 11:11:53 45 0

转载 组件协作模式之观察者模式(Observer)

文章目录一、概念二、动机三、源代码讲解四、使用观察者模式进行改进五、类图结构六、要点总结 一、概念   定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。——《设计模式》GOF 二、动机   在软件构建过程中,我们需...

2019-12-22 17:14:17 43 0

转载 组件协作模式之策略模式(Strategy)

文章目录一、概念二、动机三、源代码讲解四、使用策略模式进行改进五、类图结构六、要点总结 一、概念   定义一系列算法,把他们一个个封装起来,并且使他们可以互相替换(变化<各个算法>)。该模式使得算法可独立于使用它的客户程序(稳定<SalesOrder类>)而变化(扩展,子类...

2019-12-22 16:56:07 52 0

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