自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 基于LengthFieldBasedFrameDecoder手写一个简单的编码器解决tcp粘包拆包问题(Netty)

将消息分为消息头和消息体,消息头中包含表示消息总长度,根据应用层逻辑,只要达到指定的消息长度才进行处理,否则返回。(1).应用程序写入数据的字节大小大于套接字发送缓冲区的大小 ,产生拆包。(2).应用程序未启用Nagle算法,导致小包被合并,产生粘包。客户端发送了100次数据,服务端实际收到了29次。如下代码未使用编码器(被注释的代码)可以看到tcp粘包的问题得以解决。服务端接受数据handler。客户端发送数据handler。

2024-02-06 18:35:08 339

原创 通过自定义Map构造通用数据字典

最近再做业务的时候。遇到了这样一个场景。我需要从不同的数据源,拿到相关的配置,这些数据源可能是配置在远程apollo,也有可能是配置在数据库字典表里面的。总之配置来源非常的多且杂!因此本文通过自定义数据字典继承Map的方式,构造了一个易用且扩展性强的字典。

2023-08-27 22:20:24 185

原创 基于Java延时队列实现,通用延时重试接口

仅需要实现一个接口,就能自定义重试逻辑与次数

2023-08-10 20:01:37 330 1

原创 基于观察者模式,模拟Spring的事件监听器实现异步订阅消息

原生手写的方式模拟spring的异步事件监听器实现

2023-06-07 12:20:13 196 2

原创 稀疏矩阵转置算法(C语言)

(参考数据结构教材,严蔚敏,吴伟民版 p99,多谢阅读,望对您有帮助)无论是几维的数组,在计算机中都是以一维数组的方式进行存储的。矩阵:相当于二维数组,它的存储,依然是用一维数组的方式进行存储。nxn的矩阵,在计算机空间上,需要nxn个空间。稀疏矩阵的压缩:将矩阵中的值为零或者为常数C的某c个数,不做存储(或者共用同样的空间,本题转置对0不做存储),压缩后原本nxn的矩阵,存储只需要nxn-c的空间下面以这样的M矩阵进行转置1 2 34 0 00 5 1转置后得N矩阵:1 4 02

2022-04-03 15:18:41 2912

原创 离散事件模拟(操作系统实验1,银行排队算法,C语言实现)

本算法用文字描述难以将清楚,笔者实力有限,做了8小时,一言难尽。出自C语言教材(严蔚敏,于伟民版)p65,B站这人思路讲的很好,大家不懂去看看,代码部分是笔者原创,不懂留言即可。相互学习,共同进步https://www.bilibili.com/video/BV1nE411u7n4?spm_id_from=333.337.search-card.all.click#include "stdio.h"#include "stdlib.h"#include "time.h"#define QUEUE_M

2022-04-01 22:22:49 1732

原创 单链表就地逆置算法(C语言版),为什么输出链表是逆序?

今天看到一个单链表逆置算法,想把自己的感悟分析一下题目:将线性表(a1,a2,a3,a4,a5,a6,a7,a8,an)逆转为(an,a8,a7,a6…,a1)对于这个题目,我第一时间的思路是把an节点找到,然后添到头节点的末尾,再找倒数第二个节点,添加到an节点的末尾,这样看来,算法复杂度太高了,第一次找需要n次,第二次需要找(n-1)次,依次类推,复杂度高达n!看了答案之后,幡然醒悟,何尝不用建立线性表时逆序的思路进行倒转呢(如图所示)访问节点时,每访问一个节点n,便将该节点n,插入头指针L.

2022-03-31 17:06:32 1958

原创 C语言栈实现括号匹配问题

栈(stack)结构体:typedef struct { char *base; char *top; int stacksize;}Stack;栈的基本操作pop{弹出栈顶元素},push{推入栈顶},Gettop{获取栈顶元素,不弹出},InitStack{初始化栈},IsEmpty{判断栈是否为空}void InitStack(Stack &s){ s.base = (char *)malloc(STACK_SIZE * sizeof(char)); s.top = s

2022-03-30 16:11:02 2194

原创 单链表实现多项式相加

运行结果如下图所示(注:作者本是学生,理解教材的基础上加以创作,代码有纰漏,不深刻处,请海涵,指教。多谢阅读):#include "stdio.h"#include "stdlib.h" typedef struct Nape { int c;//系数 int index;//指数 struct Nape *next;}Nape, *NapeList;void CreateNape(NapeList &n)//构建线性表{ n = (NapeList)malloc(size

2022-03-29 14:52:13 1449 1

原创 Java实现第k选择(线性时间选择)

package test2;import java.util.Random;import java.util.Scanner;public class xianxing{ public void geta(int a[]) { Random rd=new Random(); for(int i=0;i<10;i++) { a[i]=rd.nextInt(100)+1; } } public void printa0(int a[]) { System.out.print(“生

2021-05-13 10:17:20 746

空空如也

空空如也

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

TA关注的人

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