自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 【全】TCP是怎么实现可靠性传输的?

序列号/确认应答:TCP 给发送的每一个包进行编号,接收方会对收到的包进行应答,发送方就会知道接收方是否收到对应的包,如果发现没有收到,就会重发,这样就能保证数据的完整性。滑动窗口是发送方和接收方之间的一种协议约定,用于控制发送方发送数据的速率和接收方接收数据的能力。接收方按照自己接收缓冲区大小和处理能力决定接收窗口大小,用接收窗口大小控制发送窗口大小,再由发送窗口大小控制发送速率。超时重传:超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间会被认为是丢包了,需要重传。

2024-04-04 20:05:16 437

原创 什么是TCP的拥塞控制(解释+主要算法)

通过这些机制,TCP可以根据网络的拥塞程度自适应地调整发送速率,避免网络拥塞的发生,并在发生拥塞时进行快速恢复和重传,以保证网络的稳定性和公平性。这些控制机制使得TCP成为一种可靠的传输协议,能够在不同网络环境下实现高效的数据传输。

2024-04-04 17:04:31 2741 1

原创 适配器模式——常用设计模式(一)

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式的目的是使原本由于接口不兼容而无法工作的类能够协同工作。适配器模式主要涉及以下几个角色目标接口(Target Interface):客户端期望的接口,是客户端使用的接口。适配器(Adapter):适配器类实现了目标接口,并持有一个适配者对象的引用。它通过调用适配者对象的方法来实现目标接口,并将结果返回给客户端。适配者(Adaptee):适配者是需要被适配的类或接口。

2024-04-03 02:56:02 1462

原创 什么是TCP滑动窗口?(解释+流程示例)

滑动窗口(Sliding Window)是一种用于实现流量控制和可靠数据传输的机制,在网络通信中被广泛使用,尤其是在传输控制协议(TCP)中。滑动窗口是发送方和接收方之间的一种协议约定,用于控制发送方发送数据的速率和接收方接收数据的能力。接收方按照自己接收缓冲区大小和处理能力决定接收窗口大小,用接收窗口大小控制发送窗口大小,再由发送窗口大小控制发送速率。

2024-04-02 04:01:42 9813

原创 什么是TCP流量控制?(解释说明+过程+示例)

基本上从名字就能看出它的作用,比如接收窗口的大小就是指,接收方当前能接收的数据量大小,发送窗口的大小就指发送方当前能发的数据量大小。“通俗点讲,就是接受方每次收到数据包,在发送确认报文的时候,同时告诉发送方,自己的缓存区还有多少空余空间,缓冲区的空余空间,我们就称之为接受窗口大小。接收方接收到数据报段后,会返回一个ACK确认报文给接收方,ACK就是他期待收到的下一个数据报的序列号;如果报文中win=0,发送方停止发送,开启一个定时任务,每隔一段时间,就去询问接受方,直到 win 大于 0,才继续开始发送;

2024-04-02 03:17:19 5267

原创 ArrayList和LinkedList的区别简述(简洁、齐全)

原因是海量数据下, 两者移动元素和遍历指针的量级都为O(n),且查询效率略快于移动元素,这要是修改的元素位于中部或者尾部,使得移动的次数比较少、而遍历查找的次数比较多,那LinkedList就没ArrayList快了)在海数据量情况下如百万级别,插入/修改在表中的位置不同,尤其是约靠近尾部进行删除插入,LinkedList的优势就可能会消失。

2024-03-28 04:03:55 384

原创 spring boot与注解

自定义自动装配,只需要在项目的resources下新建一个META-INF文件夹,然后再在文件夹中建一个 spring.factories文件,在文件中对key为 org.springframework.boot.autoconfigure.EnableAutoConfiguration的键设置值,值内容为需要装配 的配置ries文件:是key-value形式,需要根据key来装配的配置。

2023-09-15 11:56:05 99

原创 SQL数据库基础知识及postgre学习笔记

一、postgre的数据表基本操作注:不同数据库会有各自不同的语法,但为了数据库的可迁移性,一般使用通用的SQL语法1. 创建表 CREATE TABLE tb_emp3 ( id INT, name VARCHAR(25), deptId INT, salary FLOAT, PRIMARY KEY(id) );主键约束主键不能为空, 且值不能重复与MySQL略有不同,主键由一个字段组成,SQL语句格式分为以下两种情况。(1)在定义列的同时指定主键,语法规则如下:

2023-09-15 11:29:28 574

原创 vue学习基础知识

父组件中的数据要传给字组件, 要在子组件中的props中声明数据属性名称,并在父组件中的components中注册子组件、使用子组件标签时中传入参数。当Vue实例创建前, 它会将data的property加载到Vue的响应系统中, 此后data中的数据就可以实现响应式的绑定, 匹配为更新后的值.调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。v-if适用于运行时很少改变条件, 而v-show适用于需频繁切换条件的情况——v-if有更高的切换开销,而v-show有更高的初始渲染开销。

2023-09-15 11:27:13 77

原创 快速排列模板+(洛谷/acwing)

题目描述利用快速排序算法将读入的NN个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++ 选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入格式第11行为一个正整数NN,第22行包含NN个空格隔开的正整数a_iai​,为你需要进行排序的数,数据保证了A_iAi​不超过10^9109。输出格式将给定的NN个数从小...

2022-01-15 23:29:04 369

原创 计数排序,桶排序以及基数排序 (明明的随机数/统计各年龄人数)

三种排序比较概括:计数排序桶排序基数排序三种排序比较概括:三种排序都要建立辅助的数组/ArrayList[]来记录顺序.其中,计数排序最快O(n),适用于小范围数据,但要"数值转下标"再"下标转数组(覆盖原数组)", 创建一个很大的辅助数值helper[max-min], 储存空间浪费严重,不适用与数值稀疏不均匀的数据;基数排序类似桶排序(有点散列表的意思), 比计数排序内存浪费少. 桶排序使用于数值均匀分布的情况;

2022-01-14 00:35:45 196

原创 堆排序--(大顶堆/二叉堆/top K个最大值:排行榜)

堆排序相关的数据结构知识: 满二叉树/完全二叉树的区别; 二叉堆与满足条件: 完全二叉树+任意父节点都大于/小于他的子节点; 大顶堆和小顶堆; 二叉树的先序,中序,后序遍历(根的先后顺序)用数组构建二叉堆时, 数组就像是"物理存储位置", 二叉堆...

2022-01-13 23:55:57 420

原创 分治——快速排序、归并排序

快速排序这里用问题“逐步生成”的思想,功能分作了两部分、两个方法:递归的quick_sort及具体实现排列功能、返回中位数的partition方法单向扫描分区的方法实现partition:public static void quick_sort(int[] arr, int prior, int row){ int mid=partition01(arr,prior,row); quick_sort(arr,prior,mid); qu..

2022-01-09 02:03:33 719

原创 二分查找,冒泡、选择、插入排序

目录二分查找冒泡排序选择排序插入排序二分查找public static int binary_Search(int[] a, int target){ int low=0; int high=a.length-1; while(low<=high){ //若是最大最小值交叉了,说明找不到 int mid=(low+high)/2; if(a[mid]==target)

2022-01-08 22:16:40 688

原创 涉及位运算的应用算法 (逻辑/位移运算 /左移右移 蓝桥算法)

还在持续更新中。。目录一、位运算符二、位运算的一些基本应用举例三、位运算例题: -- 题1:找出唯一成对的数上 -- 题2:找出落单的那个数 -- 题3:二进制中1的个数位运算在处理整形数值时,可以直接对组成整形数值的二进制各个位进行操作(这意味着可以使用屏蔽技术获得整数中的各个位)。一、位运算符 -- 逻辑运算符:&(与——全1为1)、|(或——有1就为1)、^(异或——二者不同为1)、~(非——单个数值取反) -...

2021-08-10 00:20:50 464

原创 涉及循环算法的粗略总结:

涉及循环算法:一、while与for的区别:区别:1、使用场景不同: 知道执行次数的时候一般用for,条件循环时一般用while。2、在构造死循环时的区别: while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,最好使用for(;;)来进行。3、在普通循环时的区别: 对一个数组进行循环时,一般来说,如果每轮循环都是在循环处理完...

2021-08-07 00:19:27 521

原创 生成任意字符串的算法

要求:1、生成两个字符之间的随机字符(最基础,一下几个要求皆可以此为基础扩展功能)2、生成一个小写字母的字符3、生成一个大写字母的字符4、生成一个数字字符5、 生成一个随机数字串6、生成一个随机小写字母串7、生成一个随机大写字母串8、生成一个由大小写字母和数字组成的串1、生成两个字符之间的随机字符/***生成字符a与b之间的随即字符,包含a与b*@parameter a 最小的字符边界*@parameter b 最大的字符边界*@return a~b间的随即字符,包括a与b

2021-08-07 00:14:40 356

原创 关于this、super和static关键字的一些学习认知

目录this:super:static:新手自学了些有关this、super、static的知识,尝试着写一写总结this:this常见作用:this可以作为引用变量指向当前类的对象,常见作用有-指向当前对象-调用当前类的成员变量-调用当前类的成员方法-调用当前类的构造方法-作为参数和返回值在成员方法或构造方法间传递使用this的一些注意项:-this在不同的构造方法间调用时,必须在代码块第一行:-在有参构造方法传递参数、为成员变量(实例变量)赋值时,若参数名

2021-08-07 00:08:55 85

空空如也

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

TA关注的人

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