自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 golang数据结构(一):slice

切片的底层是数组,每一个切片都指向一个底层数组切片实际上是一个结构体,包括三个关键字,array是当前切片所指向的数组,len是切片长度,cap是切片容量使用len()计算切片长度时间复杂度为O(1),不需要遍历切片使用cap()计算切片容量时间复杂度为O(1),不需要遍历切片通过函数传递切片时,不会拷贝整个切片,因为切片本身只是个结构体使用append()向切片追加元素时有可能触发扩容,扩容后将会生成新的切片。

2023-10-02 17:08:51 113 1

原创 redis 哨兵机制

但是现在会有一个问题,主从节点在规定时间内没有响应,无法判断真的是主从节点挂了还是其他网络原因导致拥塞而响应慢了,或者是哨兵自己出现问题了,所以为了防止误判行为的发送,哨兵的部署不会只有一台,而是以哨兵集群的形式出现,并且。redis主从架构中,主从模式是读写分离的,只有主服务器才能处理客户端的读操作,所以如果主节点挂了,就会没有主节点处理客户端的写操作,同时也没有主节点给从节点进行数据同步了。哨兵节点有5个,quorum 设置为 3,有3个哨兵挂了,无法判定主节点为“客观下线”,也无法完成主从切换。

2023-08-13 14:26:36 180 1

原创 C++内存泄露、内存溢出、野指针详解

程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果堆内存泄露堆内存泄露就是我们常说的内存泄露,是指在堆上申请了资源,在结束使用的时候,没有释放归还给OS,从而导致该块内存永远不会被再次使用系统资源泄露通常指的是系统资源,比如socket,文件描述符等,因为这些在系统中都是有限制的,如果创建了而不归还,久而久之,就会耗尽资源,导致其他程序不可用程序在申请内存时。

2023-08-08 14:14:00 585 1

原创 话说HTTP(持续更新)

但是这其中的安全的定义也可以有不同,如果安全定义信息是否会被泄露,那么POST因为数据存储在body中,而GET数据直接写在URL中进行传输,所以数据会在地址栏被看到,但是因为HTTP是明文传输的,所以只要抓个包,body中的数据也很容易被看到,所以使用https进行加密传输会更加安全。不是,TLS1.2握手是四次,因为它使用的非对称加密算法是RSA算法,而如果是TLS1.3的话,则握手是三次,它使用的非对称加密算法是目前比较主流的算法,叫做ECDHE算法。GET用于获取资源,POST用于提交数据。

2023-08-06 15:12:04 76 1

原创 Golang中每个版本的GC机制都一样吗

GC刚开始的时候,会将栈上的可达对象全部标记为黑色。GC期间,任何在栈上新创建的对象,均为黑色。堆上被删除的对象标记为灰色堆上新添加的对象标记为灰色屏障限制只在堆内存中生效。避免了最后节点对栈进行STW的问题,提升了GC效率。

2023-07-31 16:17:49 129 1

原创 TCP传输可靠性保证机制之重传机制

告诉「发送⽅」 100-500的数据早已被接收了,因为 ACK 都到了1000 了,已经意味着1000之前的所有数据都已收到,所以这个SACK 就代表着 D-SACK。发送⽅收到了三次同样的 ACK 确认报⽂,于是就会触发快速重发机制,通过 SACK 信息发现只有200~299 这段数据丢失,则重发时,就只选择了这个 TCP 段进⾏重发。D-SACK,英文是 Duplicate SACK,是在 SACK 的基础上做了一些扩展,主要用来告诉发送方,有哪些数据包,自己重复接受了。

2023-04-12 16:29:45 547 1

原创 UDP协议详解

UDP只在IP的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测UDP不保证可靠交付,但是不意味着应用对数据的要求是不可靠的,只是所有维护可靠性的工作可由用户在应用层完成UDP是面向报文的发送方UDP对应用层交下来的报文直接添加首部后就交付给IP层,一次一个报文,不合并也不拆分,保留这些报文的边界;接收方UDP对IP层交付来的UDP数据报除去首部后原封不动交付给上层应用进程,一次交付一个完整的报文UDP报文不可分割,是UDP数据报处理的最小单位。

2023-03-09 21:04:34 2284

原创 【2023最新】计算机网络面试题【收藏持续更新】

你好,我是萝卜,我会在本篇文章持续更新关于计算机网络的面试题。

2023-03-03 18:06:28 241

原创 【Git操作手册】工作入职不会Git怎么办,一篇文章带你快速上手

你好,我是萝卜,实习或者刚入职的时候公司代码协作需要使用到Git,而我还没有接触过怎么办?本文带你快速入门Git操作,助你快速掌握Git的使用。

2023-03-02 15:24:51 761

原创 golang入门之map

键值对的数据结构容器。map内部实现是哈希表( hash。来快速检索数据,key类似于索引,指向数据的值。map是一种key :value。map最重要的一点是通过key。map是引用类型的。

2022-10-17 12:50:22 303

原创 STL之vector扩容机制

在讲解vector扩容机制前,先了解四个函数:size()、capacity()、resize()、reserve()。size():size()函数返回当前vector所容纳元素的数目,即使用的空间大小。capacity()capacity()函数返回当前vector在重新进行内存分配以前所能容纳的元素数量,即返回的是总的容量大小,capacity()-size()后就是未使用的空间大小。使用者可以通过reserve()来改变capacity(),resize()改变size()。resize()resi

2022-06-19 22:35:01 5452

原创 最详细整理STL之vector基础

Vector是一种可以存储任意类型的动态数组,属于序列式容器,可以用sort对其进行排序,底层数据结构是数组,可以随机访问元素。Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。注:如果要使用vector,则需要添加vector头文件,即#include,除此之外,还需要添加using namespace std;C++中构造ve......

2022-06-13 10:14:11 3002

原创 细说C++中的 :: 和 : 的区别

C++中的:: 1.类的作用域作用域符号”::“的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分假如:A,B表示两个类,在A,B中都有成员member。那么:A::member就表示类A中的成员member。B::member就表示类B中的成员member。2.作用域分解运算符比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员

2022-06-08 16:37:37 891

原创 【图解】八幅图带你轻松掌握八大排序(上):冒泡排序、选择排序、插入排序、快速排序

在算法中,八大排序算是最简单的也是重中之重,所以掌握好八大排序的思想是非常重要的,很多人学排序的时候会觉得似懂非懂,本篇文章作者亲手耗时两小时绘制了八大排序的详细图解,让大家快速理解八大排序的思想。一、冒泡排序二、选择排序三、插入排序四、快速排序...

2021-12-10 21:46:39 1035

原创 【Linux网络编程】你了解TIME_WAIT状态吗?

【Linux网络编程】你了解TIME_WAIT状态吗?从这幅状态图中可以看到,通信双方建立TCP连接后,在发生四次挥手之后,先发FIN标志位的一端就会进入time_wait状态,换句话说,主动关闭连接的一方就会进入TIME_WAIT状态。以下图为例,客户端主动关闭连接时,发送最后一个ACK后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态,所以我们可以粗略地理解成在断开连接后主动断开连接的那一方就会进入一个等待状态,过了一定时间后,再真正的...

2021-12-05 21:06:16 3944

空空如也

空空如也

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

TA关注的人

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