2 _闪光少女

我要认证

暂无相关简介

等级
TA的排名 19w+

【C++11】理解智能指针实现原理(+内存泄漏)

智能指针为什么用智能指针?1.1 什么是内存泄漏?1.2 内存泄漏的危害1.3 内存泄漏的分类1.4 如何避免内存泄漏为什么用智能指针?智能指针是为了解决内存泄漏的问题。1.1 什么是内存泄漏?是由于疏忽或错误导致程序未能释放已经不再使用的内存的情况。并不是指内存在物理上的消失,而是在应用程序分配某段内存后,因为设计错误,而失去了对该段内存的控制,因而造成了内存泄漏。1.2 内存泄漏的危害长期运行的程序出现内存泄漏,如操作系统、后台服务等,会导致响应越来越慢,最终卡死。1.3 内存泄漏的分类

2020-08-31 10:58:32

【C++】 四种强制类型转换(static_cast 与 dynamic_cast 的区别!)

强制类型转换1. static_cast2. const_cast3. reinterpret_cast4. dynamic_cast5. 为什么要需要四种类型转换?1. static_cast实现C++种内置基本数据类型之间的相互转换,不能用于两个不相关类型进行转换。例如:将整形数据转换为浮点型c语言方式int a = 8;int b = 3;double result = (double)a / (double)b;C++方式int a = 8;int b = 3;dou

2020-08-30 22:14:30

学习 多线程、线程池以及线程池的创建

线程池1. 单线程和多线程?1.1 多线程的优点1.2 多进程的优点1.3 如何提升多线程的效率2. 线程池2.1 什么是线程池:2.2 应用场景:2.3 优点:3. 线程池的创建1. 单线程和多线程?单线程:只是一条线程在执行任务。多线程:创建多条线程同时执行一个任务。并行:多个程序分别在不同的CPU处理机上运行,不抢占资源且可以同时运行。并发:在一个时间段内,多个程序都启动运行在同一个处理机上。1.1 多线程的优点更加高效的内存共享,多进程下内存共享不方便较轻的上下文切换,因为不用切换

2020-08-30 20:38:41

什么是线程安全?确保线程安全的方法!生产者-消费者模型!

线程安全什么是线程安全?确保线程安全的方法互斥锁死锁什么是线程安全?线程安全就是在多执行流中,对临界资源进行争抢访问,不会造成数据的二义性或者逻辑异常。临界资源:多线程执行流共享的资源就是临界资源。临界区:每个线程内部,访问临界资源的代码。互斥:任何时刻,保证只有一个执行流访问临界资源。原子性:不会被任何调度机制打断,该操作要么完成,要么未完成。确保线程安全的方法通过同步与互斥方式实现线程安全。同步:通过条件判断实现对资源获取的合理性。互斥:通过同一时间只有一个执行流能够访问资源,实现资

2020-08-30 17:35:49

【C++】设计模式 之 单例模式(手撕代码)

单例模式什么是单例模式饿汉模式懒汉模式什么是单例模式单例模式是常见的一种软件设计模式,单例对象的类只能实例化一个对象。该类负责创建对象,同时保证只能创建一个对象。并提供一个访问它的全局访问点,该实例被所有程序模块共享。一般应用与工具类的实现或者消耗资源的场景。特点:类构造函数私有持有自己类的引用对外获取实例的静态方法饿汉模式实例在初始化已经建好,不管你用不用,先建好再说。优点:没有线程安全的问题缺点:浪费内存空间。class singleton{public: //对外提

2020-08-29 23:14:21

【HTTP】总结 Cookie 和 Session 的区别与联系

cookie 与 session1. Cookie 和 session概念1.1 什么是cookie1.2 cookie的创建1.3 cookie 的分类1.4 什么是session2. cookie 和 session 的区别3. 为什么需要cookie 和session4. cookie 和 session 的配合5. 如果浏览器中止了cookie,如何保障整个机制的正常运转?1. Cookie 和 session概念1.1 什么是cookiecookie是服务器发给用户浏览器,并保存在用户浏览器

2020-08-29 16:06:17

死锁发生的条件 以及 如何避免

死锁什么是死锁死锁的4个必要条件死锁的避免1. 预防死锁2. 设置加锁顺序3. 支持定时的锁(超时放弃)4. 死锁避免的算法5. 死锁恢复什么是死锁当两个或者两个以上的进程,因为争夺资源而造成相互等待的状态,由于存在一种环路的依赖关系而永远的等待下去。经典描述:“哲学家进餐问题”:死锁:每个人都立即抓住自己左边的筷子,然后等待自己右边的筷子空出来,但同时又不放下已经拿到的筷子,形成一种相互等待的状态。饥饿:哲学家们都同时想吃饭,同时拿起左手边筷子,但是发现右边没有筷子,于是哲学家又同时放下左手边筷

2020-08-28 17:00:46

【C++关键字】 const 与 static 区别 (引申const 与 #define 区别)

const 与 staticstatic对普通变量和函数对成员变量和函数constconst 与 #define 的区别static对普通变量和函数变量在变量前加上关键字,被定义为一个全局静态变量或者局部静态变量。在内存中的位置:静态存储区(程序运行期间一直存在)。初始化:未被显示初始化的全局或者局部静态变量会被程序自动初始化为0。作用域:全局静态变量的作用域在声明他的文件内可见;局部静态变量的作用域在它的函数或者语句块结束的时候,随之结束。函数在返回值类型前加上关键字,就被定义

2020-08-26 15:12:05

【STL】 vector之 resize 和 reserve函数

vector引言resizereserve区别与联系引言在vector 中有 size() 和 capacity() 两个概念。size()是容器中实际的元素个数有多少(大小);capacity() 是容器的最大可存储空间。 resize() 改变的是元素个数的大小,reserve()改变的是存储空间。 存储空间大于等于元素个数大小。resizevoid resize (size_type n, value_type val = value_type());用来改变vector的大小(即siz

2020-08-25 18:22:16

【HTTP】 各协议版本介绍(面试:各版本的区别!)

HTTP协议版本HTTP1.0特点优点缺点请求报文GET和POST的区别?HTTP1.0特点优点简单HTTP基本的报文格式就是 header + body。灵活和易于扩展HTTP协议里的各类请求方法`状态码、头字段等都是可以自定义扩展的。同时 HTTP 由于是工作在应用层( OSI 第七层),则它下层可以随意变化。应用广泛和跨平台缺点无状态服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息但是会导致它在完成有关联性的操作时会非常麻烦。例如登录->

2020-08-25 17:42:46

【C++】 理解 多态 之 静态绑定与动态绑定

静态绑定与动态绑定静态类型与动态类型静态绑定与动态绑定缺省参数与虚函数为了支持C++的多态性,才用了动态绑定与静态绑定。静态类型与动态类型对象的静态类型:对象在声明时候的类型,是在编译时期确定的。对象的动态类型:目标所指向的对象,是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。示例:class B{}class C : public B{}class D : public B{}D* pD = new D();//pD的静态类型是它声明的类型D*,动

2020-08-25 10:14:15

【计算机网络】 之 数据链路层 === MAC地址、ARP协议

数据链路层MAC地址ARP协议用于两个设备(同一种数据链路节点)之间进行传递MAC地址MAC地址用来识别数据链路层中相连的节点;长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)。IP地址描述的是路途总体的 起点 和 终点;MAC地址描述的是路途上的每一个区间的起点和终点AR

2020-08-24 21:08:11

【计算机网络】 之 网络层==== IP协议

IP协议IP概述IP数据报子网掩码网络层在复杂的环境中确定一条合适的路径。IP概述IP协议对应的是IP地址,那么IP地址是什么?IP地址(英语:IP Address, 全称:Internet Protocol Address),又译为网际协议地址、互联网协议地址。当设备连接网络,设备将被分配一个IP地址,用作标识。通过IP地址,设备间可以互相通讯,如果没有IP地址,我们将无法知道哪个设备是发送方,无法知道哪个是接收方。[2] IP地址有两个主要功能:标识设备或网络 和 寻址(英语:locatio

2020-08-24 20:46:06

【编程题】之 (井字棋、求路径总数)

这里写目录标题1. 井字棋题目描述题目分析C++代码2. 求路径总和题目描述题目分析C++代码1. 井字棋题目描述对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。https://www.nowcoder.com/practice/e1bb714eb9924188a0d5a6df2216a3d1?tpId=8&&tqId=11055&r

2020-08-23 22:55:21

【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)

字符串题集1. 删除公共字符题目描述题目分析C++代码1. 删除公共字符题目描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=85&&tqId=29868&rp=1&ru=/activit

2020-08-23 16:03:40

【字符串】之 验证回文串 + 统计回文

字符串1. 验证回文串题目描述题目分析C++代码2. 统计回文题目描述题目分析C++代码1. 验证回文串题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: truehttps://leetcode-cn.com/problems/valid-palindrome/题目分析将小写字母全部转换成大写字母,设置头尾指针

2020-08-18 09:10:23

剑指offer ====数学计算(二进制1的个数、数值整数次方、1-n的和、1出现的次数、Fibonacci)

数学计算1. 二进制中1的个数题目描述题目分析C++代码2. 数值的整数次方题目描述题目分析C++代码3. 求1-n的和题目描述题目分析C++代码2. 数值的整数次方题目描述题目分析C++代码2. 数值的整数次方题目描述题目分析C++代码1. 二进制中1的个数题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&&amp

2020-08-18 08:46:30

谈谈 TCP/IP五层模型

网络模型TCP/IP 五层模型TCP/IP 的协议TCP/IP 五层模型应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。运输层运输层(transport layer)的

2020-08-15 17:02:05

TCP粘包问题 及 解决

TCP粘包什么是粘包TCP粘包是怎么产生的怎么解决拆包和粘包UDP是否会出现粘包什么是粘包如果客户端连续不断地向服务端发送数据包时,服务端接受的数据会出现两个数据包粘在一起的情况。TCP是基于字节流的,虽然应用层和TCP传输之间的数据交互是大小不等的数据块,但是TCP认为这些数据块仅仅是一串无结构的字节流,没有边界。从TCP结构的帧可以看到,在TCP的首部是没有表示数据长度的字段。基于上面两点,在使用TCP传输时,才有粘包或者拆包的现象的发生。一个数据包中包含了两个发送端发送的数据包信息,这

2020-08-15 16:23:33

TCP协议 ---- 如何保证可靠传输(及UDP如何实现可靠)

可靠传输TCP实现可靠传输1. 数据包检验2. 对失序数据包重新排序3. 丢弃重复数据4. 确认应答机制5. 超时重传6. 三次握手、四次挥手7. 流量控制8.拥塞控制提高性能1. 滑动窗口2. 延迟应答3. 捎带应答面向字节流TCP实现可靠传输1. 数据包检验数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;2. 对失序数据包重新排序既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失

2020-08-15 15:41:21

查看更多

勋章 我的勋章
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。