- 博客(64)
- 收藏
- 关注
原创 流量控制和拥塞控制是怎样实现的?_流量控制窗口大小的取值是如何实现的
拥塞控制是一个全局性的过程,流量控制指点对点的通信量的控制。拥塞控制是为了,可以使网络中的路由器和链路不致过载。为了进行拥塞控制,TCP一个拥塞窗口(cwnd)的状态变量,拥塞控制窗口的大小取决于网络的拥塞程度,动态变化,发送方让自己的。TCP拥塞控制采用了四种方法:慢开始、拥塞避免、快重传和快恢复。慢开始阈值ssthresh慢开始
2024-05-17 02:25:04
406
原创 洛谷千题详解 P1014 [NOIP1999 普及组] Cantor 表【C++、Java语言】
(这个优化有没有都可以AC本题,但是评论指出我的时间复杂度不够优秀,因此提一提这个优化,不愿意看的可以直接略过看下一个分割线以后的内容。update:显然这样的程序并不是最短的,评论已经有很多的dalaodalao指出了,而且时间复杂度也并不优秀,但是当时就会有一种。第一项是 1/1,然后是 1/2,2/1,3/1,2/2,…update: 首先我们观察到第ii行,第jj列的数就是i/ji/j,这是第一个要发现的。2/2**(5号)** 3/1**(4号)**第二行:1/2 (2号) 2/1(3号)
2024-05-17 02:24:31
744
原创 汉罗塔与青蛙跳台阶的递归实现(及扩展青蛙跳台阶)C语言从入门到入土(入门篇)(算法篇p2
一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶,例如:跳上第一级台阶只有一种跳法:直接跳 1 级即可。每次可以跳一次或者两次,我们就先列出来,这里我们就发现后面的等于前两个数相加,然后就可以联想到什么?这个是作者没有想出来的哈,是作者之前看递归方面的文章发现的一个宝藏文章,这里附上链接哈,他讲了不止跳两下,要是跳更多下,是怎么实现的,非常细哈!汉罗塔,用递归实现,有三个柱子n个盘子在a,要怎么才能全部移动到c。2.然后此时b有n-1个盘子,再通过a移动此时的n-1个盘子给c。
2024-05-17 02:23:24
801
原创 Java是编译语言还是解释语言?Java比C++慢?看了测试结果,颠覆了我的认知
JVM由五部分组成:类加载器JVM内存结构执行引擎本地方法接口本地方法库。
2024-05-16 13:26:27
357
原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day18】—— 奇葩问题合集_java奇葩面试题(1)
面试的结果是:那些同意开一间房,男的睡地上,女的睡床上,或者男的不睡,让女的睡的,都被pass了。在新员工面试中,有近30名排队等面试,她对每一个面试者,都提出一这么一个问题:“男女员工,要是出差去住宿的时候,只有一间房,请问该怎么办?只有一个通过的,就是说:先给女经理把这间房定下来,让她入住,然后他自己再去找找周围有没有其他的酒店,或者实在不行了在网吧对付一晚上。回答2:每天拖着牛996,不喂草,牛瘦到600公斤就过去了,不仅不增加成本,还能降低成本。」,又过了 10s,“好像真的没啥…
2024-05-16 13:25:21
380
原创 最全【面试题】消息堆积解决方案(2),2024年最新2024C C++高级进阶学习资料
问题,如上图所示,当我的消息需要顺序消费(同userld顺序)时,但是因为我把消息打平了,所以出现了不顺序消费的问题。临近双十一了,产品找到开发的同学帮忙把某些广告主的广告投放时间延长两个月并重新送审风控审核,所以开发要。,如下图所示,我拉三条消息,收到消息后抛到线程池(三个线程)中。通过对消息中的业务key(本文中的userid)做路由,如下图中的。此时数据库有大量的送审binlog消息到kafka,从而出现了。,从而实现本批次的顺序消费。,如下图中的蓝色pod,此时延迟还是增长,发现上面加机器有效果,
2024-05-16 09:48:54
253
原创 最全【面向对象(二)】内部类、封装_内部类封装,2024年最新已有千人收藏
System.out.println(“货款期限是”+term+“,根据进准利率”+getShortBase()+“和浮动比例”+floatScale+“,计算出来的贷款利率是:”+loanRate);System.out.println(“货款期限是”+term+“,根据进准利率”+getLongBase()+“和浮动比例”+floatScale+“,计算出来的贷款利率是:”+loanRate);
2024-05-16 09:47:47
345
原创 数据结构与算法对程序员的重要性_java程序员有必要学数据结构么(2)
博客可以当做你自己的技术笔记,当那你写博客的时候,才会发现,哇,原来我还有这么多没理解透,为了博客内容正确,你会被迫去查阅资料学习,更加深了对知识的理解。魏梦舒老师的**《小灰的算法之旅》**,通过虚拟的主人公小灰的心路历程,用漫画的形式讲述了算法和数据结构的基础知识、复杂多变的算法面试题目及算法的实际应用场景。12、游戏的邮件服务器中每天会有玩家频繁的创建邮件和删除邮件,海量数据、大小不一,会有哪些场景,怎么存储,邮件是怎么到内存的?4、进程间通信方式,共享内存是怎么实现的,会出现什么问题,怎么解决?
2024-05-16 05:46:14
615
原创 数据结构与算法对程序员的重要性_java程序员有必要学数据结构么(1)
大家好,我是纪宁。数据结构与算法,这个名字相信大家已经如雷贯耳,无比熟悉。可以说,数据结构与算法的掌握程度,决定了程序员水平的上限。
2024-05-16 05:45:41
341
原创 数据结构—堆的基本操作(c语言实现)_堆的基本操作的测试代码怎么写(1)
0,再次进入循环不满足a[child] < a[parent],恰好跳出循环。如果写成(a[child]
2024-05-16 05:44:35
201
原创 一篇文章帮你拿下面试八股文之网络三次握手四次挥手, HTTP超文本传输协议重点理论刨析到实现简单的HTTP服务, 思考着图解着学习网络 (咱不死记硬背)
我们类比着三次握手来解释, 三次握手之所以是三次。是因为第二次的时候是 SYN (同步序号)和ACK(确认应答) 合在了一起, 放在一个报文中发送给了客户端 (此处不懂请回溯)But : 四次挥手的时候 FIN 和 ACK 不可以放在同一个报文发送给客户端, 这个是为什么?
2024-05-16 01:43:11
970
原创 一篇文章帮你拿下面试八股文之网络三次握手四次挥手, HTTP超文本传输协议重点理论刨析到实现简单的HTTP服务, 思考着图解着学习网络 (咱不死记硬背)(2)
我们类比着三次握手来解释, 三次握手之所以是三次。是因为第二次的时候是 SYN (同步序号)和ACK(确认应答) 合在了一起, 放在一个报文中发送给了客户端 (此处不懂请回溯)But : 四次挥手的时候 FIN 和 ACK 不可以放在同一个报文发送给客户端, 这个是为什么?
2024-05-16 01:42:38
984
原创 一篇文章帮你拿下面试八股文之网络三次握手四次挥手, HTTP超文本传输协议重点理论刨析到实现简单的HTTP服务, 思考着图解着学习网络 (咱不死记硬背)(1)
上述博客主要针对网络基础比较薄弱的博友们, 有了上述基础后序的知识可以更好的理解和吸收, 后序网络会陆续的刨析所有的网络协议, 希望友友们可以关注互访, 蟹蟹很多面经上面的的统一回答方向: 为了确立客户端和服务端双放的收发数据是否正常上述回答肯定是没有问题的, 毕竟三次握手就是为了在最小的资源浪费条件下让CS双方建立一个稳定的通信的连接通道。
2024-05-16 01:42:05
591
原创 一篇万字博文带你入坑爬虫这条不归路 【万字图文】_深宫曲易次元攻略
1.域名解析 -->2.发起TCP的3次握手 -->3.建立TCP连接后发起http请求 -->4.服务器响应http请求,浏览器得到html代码 -->5.浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) -->6.浏览器对页面进行渲染呈现给用户.知识点补给站:在网页的右键检查里Network->Name->Request Headers view parsed下的Connection:keep-alive保持常连接,就不用频繁的三次握手和四次挥手!
2024-05-16 01:41:31
811
转载 2024年最全C语言【23道】经典面试题【下】(1),2024最新C C++高频精选面试题分享
方括号括住的部份表示已排序完毕,Shaker排序使用了这个概念,如果让左边的元素也具有这样的性质,让左右两边的元素都能先排序完成,如此未排序的元素会集中在中间,由于左右两边同时排序,中间未排序的部份将会很快的减少。更高维度的可以自行依此类推,但通常更高维度的建议使用其它资料结构(例如物件包装)会比较具体,也不易搞错。在快速排序法(一)中,每次将最左边的元素设为轴,而之前曾经说过,快速排序法的加速在于轴的选择,在这个例子中,只将轴设定为中间的元素,依这个元素作基准进行比较,这可以增加快速排序法的效率。
2024-05-15 14:03:01
757
原创 2024年最全C语言socket 案例_c语言socket实例下载(1),我阿里P7了解到的C C++面试的一些小内幕
/ 控制台颜色设置。// 客户端接收信息线程函数。// 服务器发送消息线程函数。DWORD WINAPI Server_Send_ThreadFunc(LPVOID lp) // 服务器发送消息线程函数。// 服务器模式 判断是不是自己发出数据信息(1是,0不是)// 存放名称 主副线程公用的变量。// 存放对方的IP信息。// 0-客户端 1-服务器。// 设置控制台颜色输出函数。// 设置颜色为黑底白字。
2024-05-15 14:02:28
330
原创 2024年最全C语言-入门级别指针详解带你快速了解指针_指针快速理解,2024年最新2024新一波程序员跳槽季
指针是C语言的核心部分,可以说的C语言的灵魂所在。由于内容有一点点多,故此会分为上下两篇发布。这次Yu同学给大家带来的是初识指针上篇,让大家浅显的了解一下指针的一些知识。开始之前说明一下什么是地址:内存可以看成大量的小空间,每一个小空间都会有一个编号,而这个编号我们称之为地址。
2024-05-15 14:01:55
886
原创 Go语言实现对称加密算法AES、DES、3DES和非对称加密算法RSA_golang 对称加密算法(1)
消息发送方利用对方的公钥进行加密,消息接受方收到密文时使用自己的私钥进行解密。(img-NqJ1N1bl-1715746453717)]des——CBC模式,key长度必须为24。AES-128:key长度16 字节。AES-192:key长度24 字节。AES-256:key长度32 字节。对哪一方更重要,哪一方就拿私钥。DES:支持字节长度是8。
2024-05-15 12:14:36
365
原创 GO语言学习笔记3—控制流程_";package main import ";fmt "; 安排碰不到(numbers,1,2,3)";
defer的用法类似java中的finally语句块,一般用于释放已分配的资源。for语句指定了迭代变量i,用于存储索引值,这个变量将在每次迭代结束后更新,声明变量numbers,并将一个包含四个整数的数组赋给他。for语句指定了迭代变量n,用于存储来自数组中的值。如果这个布尔表达式为真,则执行for语句中的代码。如果布尔条件为真就执行for语句中的代码。defer可以在函数返回前执行另一个函数。使用递增运算符讲变量i的值加1。声明变量i并将其初始化为0。声明变量并将其初始化为0。讲变量i的值打印到终端。
2024-05-15 12:14:00
399
原创 go语言切片Slice和数组Array对比panic runtime error index out of range问题解决
这个地方可以把切片比喻成一个可以装10个苹果的袋子,现在的袋子里面有三颗苹果。切片的长度就是袋子已经装的果子的个数,目前是3个。切片的容量就是这个袋子一共能装多少个果子,对于这个袋子来说就是10。因为切片是一个引用类型,只在原始切片上切出了0到1的位置,剩余的空位还有1,故其容量等于长度加剩余元素位置数。strings由sliceOne切片而来,切出来的片上数据有的是0到1,有一个元素,故其对应的长度是1。实际开发过程中,总会有slice容量不够用的时候,该怎么扩容,如何保证安全扩容?
2024-05-15 12:13:24
254
原创 Google protobuf使用之proto文件编写规则(二)_google 官方提供了 protobuf 的编码规范
int64 | 64位整数 | N | __int64 || uint64 | 64为无符号整 | N | unsigned __int64 || sint32 | 32位整数,处理负数效率更高 | N | int32 || sing64 | 64位整数 处理负数效率更高 | N | __int64 || fixed32 | 32位无符号整数 | 4 | unsigned int32 |
2024-05-15 12:12:48
442
原创 C C++最新有关signed关键字的那些事_signed数据换算十进制(3),C C++多线程断点续传
这个就不需要大家担心了,这个地方有一个特殊的规定,即计算机把1000 0000从补码转换为十进制使,会自动的将其转换为-128,这个有关于-128的这些问题大家可以认为是半计算半规定,计算体现在存储的过程中,规定体现在取出的过程中,事实上,1000 0000也是刚才我们举出的-127----127之外剩下的唯一的一个二进制数,也有人称之为-0,事实上大家记住这个结论即可,即-128的存储形式为1000 0000,但如果大家想成为一个真正优秀的程序员,我觉得这个还是有必要了解一下的。我们首先先看-128。
2024-05-15 07:48:27
355
原创 C C++最新最强阿里巴巴历年经典面试题汇总:C++研发岗,2024年最新15个经典面试问题
(19)、一串int型整数存放磁盘上的压缩存储方式,包括写入与读取及内存无法一次性读取时的解决办法。(27)、线程池对线程的管理方式,包括初始化线程的方法、线程创建后的管理、指派任务的方式。(21)、Bloom过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换入换出问题。(3)、持久化数据结构,序列化与反序列化时机(4)、在无序数组中找最大的K个数?(22)、线程池的了解、优点、调度处理方式和保护任务队列的方式。(7)、红黑树的特性与其在C++ STL中的应用。
2024-05-15 07:47:52
749
原创 C C++最新最小高度树,2024最新大厂C C++面试集合
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-height-trees。
2024-05-15 07:47:15
256
原创 C C++最新C++智能指针_c++ 智能指针 @(1),高级C C++面试题及答案
时weak_ptr的_ next和_ prev不会增加node1和node2的引用计数,即weak_ptr不会参与空间资源的管理,只是作为一个解决循环引用的工具。一般来说shared_ptr可以满足资源管理的大部分情况,但是也有些情况是shared_ptr不能处理的,这时候就需要使用weak_ptr。指针可以解引用,也可以通过->去访问所指空间中的内容,因此模板类中还得需要将***** 、**->**重载下,才可让其像指针一样去使用。上述的SmartPtr还不能将其称为智能指针,因为它还不具有指针的行为。
2024-05-15 03:19:52
780
原创 C C++最新C++文件操作(1),如何试出一个C C++开发者真正的水平
文本方式与二进制方式打开文件的区别其实非常微小,我会在《》一节中专门解释。一般来说,如果处理的是文本文件,那么用文本方式打开会方便一些。但其实任何文件都可以以二进制方式打开来读写。在流对象上执行 open 成员函数,给出文件名和打开模式,就可以打开文件。判断文件打开是否成功,可以看“对象名”这个表达式的值是否为 true,如果为 true,则表示文件打开成功。调用 open 成员函数时,给出的文件名可以是全路径的,如第 7 行的, 指明文件在 c 盘的 tmp 文件夹中;
2024-05-15 03:19:15
570
原创 C C++最新C++搭建集群聊天室(六):muduo网络库,快醒醒吧
础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!//先解析,这里和Python不太一样。//呦呵,pair也插不了。//和Python里面的一样。写一个回显数据库,你写啥进去就回显啥出来,运行的时候加上6000端口。//返回一个JSON的对象,可以看做一个容器。// 直接反序列化vector容器。XXXXXXXXX,妙啊!// 直接反序列化map容器。// 先来个最基本的。
2024-05-15 03:18:03
812
原创 C C++最全Unix网络编程思想_unix 网络编程第三版 epub,从消息中间件看分布式系统的多种套路
既然发生错误时终止程序的运行时普遍的情况,我们可以通过定义**包裹函数(wrapper function)**来缩短程序。当某个函数发生错误时,就调用我们自己的err_quit或err_sys函数输出一个错误消息并终止程序的运行(当然有时候并非简单的终止程序运行,还需要检查问题所在:系统调用是否被中断了)。如果函数不返回错误,errno的值就没有定义。值0不表示任何错误。只要一个Unix函数(例如某个套接字函数)中有错误发生,全局变量errno就被置为一个指明该错误类型的正值,函数本身则通常返回-1。
2024-05-14 22:47:42
311
原创 C C++最全ubuntu系统Protobuf指定版本安装,以及报错解决方法_ubuntu20,2024年最新成功入职百度月薪35K
/ 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错。// 该命令表示克隆protobuf的子模块,主要是gtest。// 输出protobuf版本信息则表示安装成功。// 进入到克隆的protobuf目录。//没有反应,没问题继续进行。
2024-05-14 22:47:06
389
原创 C C++最全ubuntu下安装Teamviewer及使用_ubuntu用teamviewer哪个版本,2024年最新C C++基础图形
这里也可以看到:2)设置该设备对应的密码,以便其他设备访问该设备。
2024-05-14 22:46:31
274
原创 2024年最新<C++>快来精通C++的“Hello world(1),研发4面真题解析(C C++岗)
1️⃣命名空间中的内容既可以定义变量,也可以定义函数和类型namespace tyyg // tyyg为命名空间的名称// 命名空间中的内容,既可以定义变量,也可以定义函数和类型int a;//变量int Add(int left, int right)//函数struct ListNode//类型int val;namespace OUT//外int a;int b;namespace IN//内int c;
2024-05-14 16:27:43
335
原创 2024年最新(二)结构型模式:8、代理模式(Proxy Pattern,写给C C++软件工程师的3条建议
客户端只能通过代理对象来访问真实对象,可以隐藏真实对象的具体实现细节,提高了系统的安全性。当真实对象的创建和初始化过程比较耗时时,可以通过代理对象来延迟加载真实对象,提高系统的响应速度。通过代理对象,可以在不同的进程或服务器上访问真实对象,实现分布式系统的通信和协作。(2)真实主题(Real Subject):定义了真正执行业务逻辑的对象,是代理对象所代表的真实对象。引入了代理对象会增加代码量和类的数量,增加了系统的复杂性和维护成本。:定义了真实对象和代理对象共同实现的接口,客户端通过该接口访问真实对象。
2024-05-14 16:27:07
416
原创 2024年最新(二)结构型模式:5、装饰器模式(Decorator Pattern(2),2024年最新深度剖析原理
装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。:装饰器模式使得客户端可以透明地使用被装饰对象和装饰后的对象,无需关心具体对象的类型。:装饰器模式可以将功能划分到不同的装饰器中,每个装饰器只负责一个特定的功能,符合单一职责原则。**总结:**尽管装饰器模式存在一些缺点,但它仍然是一种强大且常用的设计模式,特别适用于需要动态地为对象添加功能的场景。:可以使用装饰器模式来为对象添加权限验证、身份认证等功能。
2024-05-14 16:26:31
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人