自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 【数据库】关系数据库和非关系数据库的优缺点

注1:数据库事务必须具备ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。 注2:数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库。 ...

2019-08-31 21:23:06 111 0

转载 【数据结构】重温数据结构:理解 B 树、B+ 树特点及使用场景

链接:https://blog.csdn.net/u011240877/article/details/80490663

2019-08-18 16:42:03 77 0

转载 git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

场景:因为有事情需回到学校搞毕设,同事在公司说接口代码有问题,需要修改; 我用笔记本把代码同步到笔记本,然后做了一些修改、提交。修改完成。 第二天我来到公司(公司里用台式机,不是自己的笔记本),忘了先git pull到本地之后,直接在台式机上的代码进行编写,突然想起忘了pull了,然后想用gi...

2019-07-10 15:17:31 299 0

转载 什么是TPS,什么是QPS,区别是什么?

一、TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS) TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然...

2019-07-10 14:33:14 95 0

原创 PB协议的说明与使用

详情请看: http://www.cppblog.com/woaidongmao/archive/2009/06/23/88391.html GO语言对PB协议的操作: https://developers.google.com/protocol-buffers/docs/gotu...

2019-06-23 11:59:13 559 0

转载 DB理论--数据存储方式

从本篇开始呢,我来详细的整理一下mysql。mysql其实还是有点难度的,这里我会认真的,详细的整理到MySQL的各个细节。OK,现在我来开始。 首先呢,这里先开始整理数据库理论,为了方便我统一来使用DB表示数据库。 比如说什么是DB?为什么要使用DB?什么是数据库泛型?什么是sql?如何访...

2019-06-23 11:29:46 135 0

转载 幂等性验证思想

引入: 这段时间在做新渠道的接入,把以前的核心拿过来copy一份进行改造,在进行代码重读的时候,发现了一个好玩的东西,在申请入件的时候,需要经过一步校验,注释上写的是,对于短时间重复提交的验证。当时我就很好奇点了进去,看一看到底是什么东西,然后点开之后大吃一惊,里面做的操作是:取到这笔件的身份证...

2019-06-05 16:45:25 1062 0

转载 【操作系统】内存碎片产生原因及终极解决办法

内存碎片通常分为内部碎片和外部碎片: 1. 内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免; 2. 外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区...

2019-05-04 21:22:35 1220 0

转载 【C++】关于vector<bool>

vector<T>标准库模版类应该是绝大多数c++程序员使用频率比较高的一个类了。不过vector<bool>也许就不那么被程序员所了解。关于vector<bool>不尝试研究一番,一般还不太容易知道其中蕴含的问题。 首先得明确一点,那就是vector<...

2019-05-04 20:40:16 78 3

转载 【C++】构造函数、析构函数抛出异常的问题

转自:http://www.cnblogs.com/fly1988happy/archive/2012/04/11/2442765.html 1. 抛出异常 1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。 该语...

2019-04-28 21:50:42 59 0

原创 【计算机网络】cookie和session的区别

一、cookie: 在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时...

2019-04-22 20:00:56 85 0

转载 【操作系统】系统调用的概念

“操作系统”通常包含以下两种含义: 1、表示完整的软件包,包括用来管理计算机资源的核心层软件,以及附带的所有标准软件工具,诸如命令行解释器、图形用户界面、文件操作工具和文本编辑器等; 2、狭义上的操作系统是指管理和分配计算机资源(如CPU、RAM和设备)的核心层软件。 内核负责管理分配计算机...

2019-04-20 13:01:30 484 0

原创 【算法】对于大数的操作

1.大数相加 void Add(string& s1, string& s2) { int len1 = s1.size(); int len2 = s2.size(); string ret; //保存结果 reverse(s1.begin(), s1.end()...

2019-03-22 21:03:25 208 0

转载 【C++】构造函数中必须通过初始化列表来进行初始化情况

1、类成员为const类型 2、类成员为引用类型 #include <iostream> using namespace std; class A { public: A(int &v) : i(v), p(v), j(v) {} void print...

2019-03-20 18:37:11 262 0

转载 【Linux】多线程和多进程 及其应用场景

一. 两者区别 进程是分配资源的基本单位;线程是系统调度和分派的基本单位。 属于同一进程的线程,堆是共享的,栈是私有的。 属于同一进程的所有线程都具有相同的地址空间。 多进程的优点: ①编程相对容易;通常不需要考虑锁和同步资源的问题。 ②更强的容错性:比起多线程的一个好处是一个进程崩溃了不会影...

2019-03-10 14:57:35 147 0

转载 【C++】const 指针与指向const的指针

最近在复习C++,指针这块真的是重难点,很久了也没有去理会,今晚好好总结一下const指针,好久没有写过博客了,记录一下~ 1.const指针的定义:   const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的。其定义形式如下: type *const 指针名称;   声...

2019-03-06 11:52:35 124 0

原创 【C++】常见的内存泄漏及解决方法

之所以撰写这篇文章是由于前段时间花费了非常大的精力在已经成熟的代码上再去处理memory leak问题。写此的目的是希望我们应该养成良好的编码习惯,尽可能的避免这种问题,由于当你对着一大片的代码再去处理此类的问题,此时无疑添加了解决的成本和难度。准确的说属于补救措施了。 一. 什么是内存泄漏(me...

2019-02-26 18:19:47 525 0

原创 一次完整的HTTP请求是怎样的??

写完了HTTP服务器项目,但是对于一个完整的HTTP请求还不是很懂,在这里总结一下,当然这里的总结只是将每个过程进行简化,并没有去深入讲解(实属小弟实力不足啊)    我们都知道,如果我们打开浏览器/www.baidu.com/几秒后就会跳转出百度的首页,接下来就讲解一下这个过程!! 1.解...

2019-02-26 17:49:24 184 0

原创 【Linux】线程安全的单例模式以及计算密集型线程和IO密集型线程

一.单例模式 1.含义 一个类只能实例化出一个对象 2.单例模式实现的两种方式 饿汉模式 我们在程序运行之初就将对象创建好,就是说不管你将来用不用,程序启动时就创建一个唯一的实例对象。是以空间换时间的做法。这样程序运行中想要调用这个实例时都可以直接使用。举个例子:就像是一个...

2019-02-16 15:04:25 86 0

转载 【linux】send和recv函数解析

1. send函数 int send( SOCKET s, const char FAR *buf, int len, int flags );   不论是客户端还是服务器端应用程序都用send函数来向TCP连接的另一端发送数据。 客户端程序一般用send函数向服务器发送请求,而服务器则通...

2019-02-15 20:52:38 69 0

原创 【C】堆区和栈区的区别

  一.程序内存的区域 ​ 二.堆和栈的区别 一.程序内存的区域                                                                             1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数...

2019-01-26 12:43:45 744 2

原创 【C++】智能指针(后续)

上篇文章我们讲了几种智能指针原理以及实现方法,这篇文章我们主要讲一下shared_ptr的线程安全问题和循环引用问题。 目录   一.线程安全问题  二.循环引用 一.线程安全问题 shared_ptr的线程安全问题存在两方面 1.由于shared_ptr的原理是多个对象共用引用计...

2019-01-19 16:26:53 69 0

原创 【C++】面向对象的三大特性

封装: 封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为...

2019-01-15 18:13:07 217 0

原创 【C++】const修饰的成员函数

在日常学习中总是碰到const修饰的成员函数,自己也总是稀里糊涂的,只能是靠着编译器来区分const和非const成员函数的相互调用关系,今天在这里总结以下。 一.const修饰成员函数的格式 在成员函数的后边加上const void display() const { ...

2019-01-14 15:43:37 760 1

原创 【C++】智能指针

目录 一.什么是智能指针? 二.为什么需要智能指针?? 三. 思维导图 ​  四.模拟实现三个智能指针 1.auto_ptr  2.unique_ptr 3.shared_ptr shared_ptr的线程安全问题和循环引用的解决方法下篇文章在做分享 一.什么是智能指针? ...

2019-01-13 17:34:17 139 0

转载 【Linux】vim的简单配置

vim是从 vi 发展出来的一个文本编辑器。功能丰富,在程序员中被广泛使用,而且可以根据自己需要对其进行配置,下面我们来介绍一些vim的基本配置。  首先将你的Linux切换到超级用户,输入命令 su,输入密码再回车切换到root用户,cd进入当前用户主工作目录,输入vim .vimrc进行vim...

2018-12-09 19:12:45 53 0

原创 Git上传代码时碰到的问题及解决方法

1.git add . 出现问题   解决方法 a.首先用git  status查看一下状态  b.解决方法很简单 $ git add -A  #或 git add -all  2.git push 出现问题 解决方法 首先git pull origin ...

2018-12-07 23:27:38 381 0

原创 【操作系统】大小端问题

在面试中经常会遇到被问,大小端问题,如何去判断是大端还是小端,以前老是记不住,今天总结一下!! 一.首先了解一下什么是大小端模式??? 大端(存储)模式:一个数据的低字节内容存放在高地址中,高字节的内容存放在低地址中。(简单的说就是:低字节,高地址。高字节,低地址。----->大端) ...

2018-11-28 09:59:22 680 0

转载 【Linux】HTTPS的理解

本文是我在今日头条上看到的,希望大家可以共同学习 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)简言之就是HTTP的安全版本,其提供安全的主要是SSL,SSL是应用层和传输层之间添加一层(SSLSecure Sockets...

2018-11-25 21:12:06 87 0

原创 【Linux】HTTP的理解

HTTP(超文本传输)协议是存在于应用层的协议 应用层:负责应用程序之间的数据沟通(常用的协议有:HHTP,FTP,SSH) 一.首先我们认识一下URL(统一资源定位符)     通俗的将URL就是我们日常生活中访问的网站。例如:www.baidu.com。     根据下图我们可以...

2018-11-24 21:04:25 100 0

转载 【Linux】内核态和用户态

一.定义 1.内核态:当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。 2.用户态:当进程在执行用户自己的...

2018-11-09 21:47:36 822 0

原创 【C++】多态的理解

一.多态的概念 简单的讲就是同一事物在不同条件下所呈现出来的不同形态 举例:火车站的同一窗口成人售票就是全价票,学生就是半价票。这就是同一事物,但是在不同的条件下可以呈现处不同的形态。有点见人说人话,见鬼说鬼话的意思。 二.多态的实现 #include&lt;iostream...

2018-11-09 16:29:42 201 0

转载 【数据结构】有关二叉树的面试题

目录 二叉树节点定义 1、求二叉树中的节点个数 2、求二叉树的深度 3、前序遍历,中序遍历,后序遍历 4、分层遍历二叉树(按层次从上往下,从左往右)  5、将二叉查找树变为有序的双向链表 6、求二叉树第K层的节点个数 7、求二叉树中叶子节点的个数  8、判断两棵二叉树是否结构相同...

2018-10-31 23:28:48 216 0

原创 【Linux】Linux中的0644 和 0755的权限

Linux 系统中采用三位十进制数表示权限,如0755, 0644 ABCD   A- 0, 表示十进制 B-用户 C-组用户 D-其他用户   利用 ls -l可以查看文件的权限 ---  -&gt; 0   (no excute...

2018-10-31 23:07:08 4309 1

原创 【C++】四种强制类型转换

强制类型转换在有些地方起到了很大的作用,在看C++中的强制类型转换时,我们首先看一下我们熟悉的C语言中的强制类型转换。 一.C语言的强制类型转换 C语言中强制类型转换分为两种: 隐式类型转换(相似类型转换,及相关类型的转换,这里和类型提升也优点相似) 显示类型转换(不相关类型之间的转换,...

2018-10-30 12:41:26 336 2

原创 【C++】struct和class的区别

       在C++中我们可以看到struct和class的区别并不是很大,两者之间有很大的相似性。那么为什么还要保留struct,这是因为C++是向下兼容的,因此C++中保留了很多C的东西。 一.首先看一下C中struct 1.struct的定义 struct A { int a...

2018-10-27 16:14:03 6398 0

原创 【Linux】TCP的三次握手,四次挥手,以及常见的有关面试题

首先我们要清楚TCP是传输层的协议,传输层的功能就是负责端到端的传输。 接下来看一下TCP的三次的三次握手和四次挥手的流程图 一.TCP的三次握手 在进行TCP的三次握手建立连接之前,客户端和服务端都要做一定的工作。 初始化工作: 1.客户端:客户端刚开始处于CLOSED状态,首先要...

2018-10-25 20:50:00 335 0

转载 【Linux】TCP SYN泛洪攻击

尽管这种攻击已经出现了十四年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。你可以在如今的操作系统和设备中找到保护应用层和网络层的不同解决方案的不同实现。本篇论文详细描述这种攻击并展望和评估现在应用于终端主机和网络设备的对抗SYN洪...

2018-10-25 20:48:13 482 0

原创 【Linux】GDB的使用总结

在使用Linux的时候利用GDB调试程序是一件很重要的事,在这里就将GDB调试中所用到的命令进行一个总结 在使用GDB的前提条件:要在生成二进制代码时 +g (gcc -g test.c -o test) 在生产文件后在利用命令进行调试: gdb  + 生成二进制文件名(test)   ...

2018-10-24 12:16:50 68 0

原创 【C++】new和malloc的区别

     之前的博客中也有写过new和malloc但是没有系统的整理过。因为最近看面经经常会碰到面试官会问new和mmalloc的区别,所以在这里整理一下,希望对大家有帮助。 new和malloc的区别可以从以下几方面进行阐述: 最大的区别:new在申请空间的时候会调用构造函数,mallo...

2018-10-18 16:56:59 293 0

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