自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String为什么不可变

答:无论一个属性用什么关键字修饰 private或final,都是可以被反射强行修改,对string类加上final,是防止有人恶意继承string并修改string的不可变性,造成string似乎可变的情景(虽然是子类,但是开发时不注意的话,由于多态的特性,很容易出现问题)。另外,jdk自带的string不可变除了private、final关键字修饰外,还有工程师小心翼翼的在后续开发中,不暴露有关修改value[]的接口。何为不可变:个人理解就是不对外/对内 提供修改接口。string源代码如下。

2024-02-02 13:15:29 476

原创 自定义协议(RPC)

4个字节的魔术值 1个字节的版本号 2个字节的首部长度 4个字节的报文总长度 1个字节的请求类型 1个字节的序列化方式 1个字节的压缩方式 8个字节的请求id 8个字节的请求时间 + 若干请求体。请求类型有两种 一种是心跳请求 请求头为空 一种是其他请求 请求头不为空 所以请求总长度需要先判断类型 再进行计算。接收方 以长度帧解码器 解码请求 具体如何使用 可以看这篇博客 写的很好。解决粘包问题的几种方式。2、以特殊字符作为边界。

2023-11-13 13:15:48 43

原创 javaIO模型

所以 有了 IO多路复用,将用户态的轮询转移到了内核态(即内核一直问硬盘,数据准备好了没有,数据准备好了没有),本质上是阻塞一个线程,以实现其他线程的非阻塞。“你”就是selector,你的朋友们的电话,就是selector维护的列表。用户读取请求 申请系统调用 系统执行请求(从硬盘dma拷贝到系统缓冲区,再从系统缓冲区cpu拷贝到用户缓冲区)NIO早期模式是通过用户态一直轮询问内核态“数据准备好没有,数据准备好没有”,这是一个很耗性能的过程,很蠢。用户态调用请求 不等着返回结果 去干其他事 叫做。

2023-11-06 22:53:12 35

原创 负载均衡之一致性hash算法实现

将hash值均匀的分布在一个区间、采用环状的数据结构(treemap) 、为每一个节点创建若干虚拟节点 防止产生严重的流量倾斜。因为负载均衡策略很多 为了保证可扩展性 设计之初就应该构思清晰 我选择采用模板方法设计模式。局限性很大 不便于修改 动态扩容时及其麻烦。不仅为抽象出负载策略接口 还抽象出选择器接口。

2023-08-18 11:43:58 47 1

原创 手写雪花算法

【代码】手写雪花算法。

2023-08-16 09:45:12 47

原创 编写脚本一键启动zk和kafka

正常启动kafka需要先启动zk,要在几个文件夹下切换,属实比较麻烦,编写脚本可以节省时间可以将主机名写在另一个文件上,这样方便管理。我们就可以先启动zk脚本 在启动kafaka。

2023-06-15 10:03:24 195 1

原创 Hadoop单片机安装与伪分布实现

把hadoop 文件 及其子文件的权限 全部改成me

2023-05-08 14:30:59 224 3

空空如也

空空如也

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

TA关注的人

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