自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP三次握手详解

假如客户端发送了SYN(seq=90)报文,然后宕机了,而且这个报文还被网络阻塞了,服务端没有收到,接着客户端重启后,又重新向服务端建立连接,又重新发送了SYN(seq = 100)报文,此时旧的SYN报文就比最新的SYN报文先到达,服务端就会回一个SYN-ACK报文,而此报文确认号是90+1,客户端收到后发现不是100+1,就会回RST报文,服务端收到RST报文后就释放连接,后续新的报文又发送到后,就可以正常的三次握手了。你:妈,听得到,你听得到我说话吗?你妈:听得到,饭煮好了快来吃饭(三次握手)

2025-03-23 13:52:53 480

原创 OSI七层模型和TCP/IP模型

4.网络接口层:在计算机和网络硬件间传输数据,负责在物理网络上发送和接收数据帧。3.会话层:负责建立,管理和终止表示层实体之间的通信会话。6.数据链路层:负责数据的封帧和差错检测,以及MAC寻址。2.表示层:负责把数据转换成兼容另一个系统能识别的格式。2.传输层:处理主机到主机的通信(TCP,UDP)1.应用层:支持HTTP,SMTP等最终用户进程。1.应用层:负责给应用程序提供统一的接口。5.网络层:负责将数据的路由,转发,分片。4.传输层:负责端到端之间的数据传输。实际上常见的也比较实用的是。

2025-03-23 11:55:45 114

原创 HTTP和HTTPS详解

客户端会生成随机密钥,使用服务端的公钥加密后传给服务端,在非对称加密算法中,公钥加密的消息仅能通过私钥解密,服务端用私钥解密后,双方就得到了相同的密钥,最后再用它加密消息。由于HTTP是基于TCP传输协议实现的,因此客户端与服务端在进行通信前,需要先建立TCP连接,然后客户端发起HTTP请求,服务端收到后就返回响应,这样请求-应答的模式就完成了,随后释放TCP连接。如果我们每次请求都要经历这样的过程,每次请求前都要建立TCP的连接(三次握手),请求后释放连接(四次挥手),这样的过程就是。

2025-03-18 23:45:58 797 1

原创 volatile有什么用

我们熟知的单例模式中的双重检查锁就是为了避免指令重排的问题,在初始化单例对象时,由于编译器或cpu的指令重排,可能会导致另一个线程读取到未初始化完成的对象,这种情况就可以使用volatile关键字来避免。当一个变量被声明为volatile,它会保证对这个变量的写操作立即刷新到主存当中,而对这个变量的读操作会直接从主存中读取,从而确保了多线程环境下对该变量访问的可见性。如果指令重排的话,顺序可能就变为132,接着当正在执行2的时候,另一个线程来读取这个对象,读取到的就是一个未初始化完成的对象。

2025-03-17 17:32:25 266

原创 Java的多态

多态是指一个接口或父类可以指向不同的对象实例,并根据实际指向的对象类型执行相应的方法,是面向对象的核心特性之一。

2025-03-17 16:12:18 338

原创 Integer的缓存池

Java中Integer的缓存池是为了提升性能和节省内存,因为根据实践发现其实大部分的数据操作都在比较小的范围内,因此缓存这些对象可以减少内存分配和垃圾回收的负担,提升性能。Java中换缓存这些值的范围为:-128~127所以对于值在-128~127范围内的int类型,在自动装箱时会直接返回已经缓存的Integer对象,而不是新创建一个Integer对象。

2025-03-17 15:29:23 197

原创 自动装箱和拆箱

在java中我们知道基本数据类型都有对应的包装类,如int的包装类Integer而就是指Java编译器自动将基本数据类型转换它们对应的包装类型,如int转为Integer则是反过来,Java编译器自动将包装类型转换为它们对应的基本数据类型,如Integer转为int。

2025-03-17 14:59:11 298

原创 Java的数据类型

Java的数据类型其实可分为两种:基本数据类型和引用数据类型。

2025-03-17 14:40:50 153

原创 HashMap底层原理详解

首先我们要知道什么是HashMap,HashMap是基于哈希表的数据结构,可以说是基于。

2025-02-09 00:14:44 807 2

原创 java基础之序列化和反序列化

这个可以理解为版本号,jvm会把传进来的字节流中的serialVersionUID与本地实体类的serialVersionUID进行对比,如果相同就认为是一致的,就可以进行反序列化,否则就会报序列化版本不一样的异常。如果我们在实现Sericalizable接口的时候没有给定UID,jvm每次编译的时候就会默认生成一个UID,这样的话当反序列化之前程序修改了一些代码,比如增加了一些字段,再次编译时就会再生成另外不同的UID,当反序列话进行比对的时候自然就对不上了,便会报异常。一般情况下我们都写为。

2024-10-08 22:57:04 498

原创 前端传了不同类型的对象数组,后端如何解析到对应实体类上?

从List集合中取第一个为PlantingPlan对象,第二个为Crop对象,由于集合中的类型是JSONObject,需要再转为java对象,并映射到对应的实体类上。首先先利用fastjson库中parseObject方法,将前端传的Json字符串转为json对象。解析 JSON 数组,转为List集合,先映射为JSONObject对象。PlantingPlan类 种植计划。再获取字段为data的数组。这样就完成了,打印看看结果。

2024-09-29 12:35:25 418

原创 spring中,为什么前端明明传了值,后端却接收不到

https://blog.youkuaiyun.com/qq_39327650/article/details/134419523

2024-09-09 13:37:49 143

空空如也

空空如也

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

TA关注的人

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