自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP1.0 到 HTTP3.0 的优化

将传输的数据分成一个个二进制帧,可以独立传输,每个帧的头部会携带 Stream ID 信息,所以接收端可以通过 Stream ID 有序组装成 HTTP 消息。服务端不再是被动地响应,可以主动向客户端发送消息、推送额外的资源,比如客户端请求网页,服务端会将相关的 CSS、JavaScript 或图片文件等。在客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,就不用重复发送同样字段了,只发送索引号,减少数据量提高速度。允许同时通过一个连接并行传输多个请求和响应,解决了队头阻塞问题。

2024-09-07 14:43:01 163

原创 Spring Boot 自动装配原理及 Starter 实现

通过 Spring Boot 启动类上的 @SpringBootApplication 注解,Spring 就可以遍历所有 META-INF 的 spring.factories 文件中的配置类,并根据 @EnableAutoConfiguration 的条件选择是否将其注册为 bean。创建 Spring Boot 工程,添加项目需要的依赖,Spring Configuration Processor 这个依赖可以帮助开发者自动生成配置的的代码提示。方便快捷地引入依赖或者配置属性。

2024-09-04 18:02:31 1076

原创 MySQL 的 undo log,redo log,binlog 总结

事务执行过程中,先把日志写到 binlog cache(在用户空间的内存),事务提交时会把 binlog cache 写入到 binlog 文件(在内核空间的内存)中,并清空 binlog cache。在事务提交时,只需将 Redo Log 持久化到磁盘就能保证发生断电的情况下能够将数据恢复到最新状态,不需要等 Buffer Pool 的脏页数据刷盘。MySQL 不能再执行修改操作,会停下来先将 Buffer Pool 中的脏页刷盘,之后擦除掉 Redo Log 的旧记录。顺序写比随机写高效的多。

2024-08-28 20:34:52 704

原创 同步、异步、阻塞和非阻塞的理解

例如,使用 Mono 或 Flux 来处理流式数据,这种方式下,数据的处理是异步的,并且不会阻塞调用线程。这是一种同步方式,因为任务按顺序执行,但并不阻塞其他任务的执行。这意味着任务本身是异步执行的,但在你获取结果时,线程会被阻塞。在异步调用中,如果回调函数内执行了阻塞操作(如 I/O 操作),这会导致尽管任务是异步的,但在处理结果时仍然会阻塞线程。异步指的是对于每个请求,不需要等待上一个请求完成就可以进行下一个请求,上一个请求完成后会通过回调机制通知。非阻塞侧重于等待请求期间,可以执行其他请求。

2024-08-28 18:34:33 254

原创 前后端跨域问题解决方案

设前端所在服务器 IP 为 IP1,后端所在服务器 IP 为 IP2,前端项目绑定了域名。比如你写的是域名,那么访问就要用域名访问,用 IP 地址访问就无法携带 cookie。在 requestConfig.js 中加入requestConfig。:baseuURL 的xxxx写的是什么,访问的时候就要用什么去访问。本篇文章是基于自己踩的坑记录的一些解决方案,如有错误,敬请指正!同理,写的是 IP 地址,用域名访问也不会携带 cookie。后端框架:SpringBoot。编写跨域 Config。

2024-08-16 16:40:13 140

原创 【JAVA】String、StringBuilder和StringBuffer的区别,看完忘不了

在Java编程中,处理字符串是一个常见的任务。Java提供了几种不同的类来处理字符串,其中最基本的是String,另外两个是和。

2024-05-17 13:43:42 349 1

原创 【力扣】用栈实现队列&&用队列实现栈 (用deque实现)

使用两个栈实现先入先出队列。假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)一个栈stackIn模拟进队,一个栈stackOut模拟出队。

2024-05-08 19:48:59 171 1

原创 【JAVA】网络编程-实现离线留言

在韩顺平老师的多用户即时通信系统中实现离线留言,主要的思想是:当客户端A向客户端B发送消息时,判断客户端B是否在线,在线则直接发送,不在线则创建一个线程保存消息,等待客户端B上线后再发送给他。

2024-04-02 21:54:21 315 1

原创 【JAVA】 常用IO流基本操作

注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件!和Reader和Writer类似,只不过是通过String.getBytes()将字符串转为字节再传输。相关API: String类:toCharArray:将String转换成char[]和Reader和Writer类似,只不过是把char数组改为byte数组。在读取数据时,读取数据的值和数据类型(反序列化)在保存数据时,保存数据的值和数据类型(序列化)

2024-03-31 15:25:03 1726 1

原创 【JAVA】 Socket is closed

在服务端和客户端之间既有接收又有发送的情况下,不要过早的关闭输入/出流。

2024-03-30 22:02:51 468 1

原创 【JAVA】线程知识点总结

线程知识点总结

2024-03-23 21:07:27 638

转载 泛型知识点总结

https://blog.csdn.net/Mubei1314/article/details/120129253

2024-03-19 23:08:44 22 1

原创 【JAVA】集合,Collection接口和Map接口的实现类及其常用方法

add:添加单个元素remove:删除指定元素contains:查找元素是否存在size:获取元素个数isEmpty:判断是否为空clear:清空addAll:添加多个元素containsAll:查找多个元素是否都存在removeAll:删除多个元素iterator:用于遍历Collection集合中的元素List接口额外的常用方法1)List集合类中元素有序(添加顺序和去除顺序一致)、且可重复2) List集合中每个元素都有其对应的顺序索引,即支持索引。add(int index,

2024-03-18 00:57:01 1978 1

原创 【力扣】15.三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。如果nums[i]+nums[j]+nums[k]==0,记录这个组合,由于不可以包含重复的三元组,j需要向右移,直到不和之前的值重复;解释: nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0。输出:[[-1,-1,2],[-1,0,1]]

2024-03-17 21:11:51 239 1

原创 【力扣】142.环形链表Ⅱ

可以使用快慢指针法,分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。:从头结点出发一个指针,从相遇节点也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。设置一个visited集合,存放已经遍历过的节点,如果当前节点已经在这个集合中,说明这个节点就是环的入口。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。

2024-03-17 16:00:26 231 1

原创 【JAVA】Map的遍历方式,Node和Entry的关系

通过EntrySet 来获取k-v。EntrySet指的是map.entrySet(),其中存放着Map.Entry。Map.Entry对象存放着一组key和value,可以通过getKey和getValue方法获取。先取出所有的Key,通过Key取出对应的Value。把所有的values取出。

2024-03-16 17:46:50 526 1

原创 【JAVA】HashSet机制理解

HashSet的底层是HashMap,第一次添加时,table数组扩容到16,当table中的元素个数到达临界值(table.size*loadFactor(默认是0.75))时,table.size扩容到原来2倍。:如果有一条链表的元素个数到达8,但是table的大小没到64,再向这个链表中添加一个元素(这条链表有9个元素),不会触发树化,但是会将table的大小扩容到原来2倍,即使table中的元素个数还没到达临界值。2)当name和age的值相同时,认为是相同员工,不能添加到HashSet集合中。

2024-03-16 01:09:28 225 1

原创 【力扣】206.反转链表&24.两两交换链表中的节点

4)first的next指向下一需要反转的节点(因为第一个节点在反转后肯定是最后一个节点,当第一个节点的next为None时即全部反转)。3)dummy的next指向反转节点(dummy的next需要一直指向头节点,因为我们的程序是以dummy.next作为返回结果);每次反转一个节点(对于12345,先反转成21345,再反转成32145…2)反转节点的next指向头节点(这样反转节点就成头节点了);1)保留反转的下一节点,因为反转节点的next会进行改变;输入:head = [1,2,3,4,5]

2024-03-14 00:18:01 413 1

转载 【JAVA】comparator 升序、降序、倒序

return 0或者1;想实现升序,规定组合。想实现降序,规定组合。

2024-03-12 21:54:12 915 1

原创 【力扣】59.螺旋矩阵

圈数计算:输出是一个边长为n的正方形,如图有一条蓝线穿过正方形,可以看出每圈会穿过两个单位,当n为偶数时,圈数就是n/2。n为奇数时,圈数为n/2+1,最后一圈是中心点,直接对其赋值为n^2。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。设置每圈赋值的终点:endpoint,初始值为n-1,每圈-1。输出:[[1,2,3],[8,9,4],[7,6,5]]

2024-03-12 15:33:21 214 1

原创 【力扣】双指针法

快指针:寻找不含目标元素的新元素慢指针:指向更新新元素下标的位置。

2024-03-10 20:07:03 121

转载 Java类的初始化顺序

转载于。

2024-02-25 17:05:39 25

原创 ValueError: Worksheet index 0 is invalid, 0 worksheets found

pandas.read_excel报错ValueError: Worksheet index 0 is invalid, 0 worksheets found。可能的原因:excel文件保存的格式不正确,保存格式为。解决方案:将excel文件另存为。,这个格式也是xlsx后缀。

2023-10-19 11:11:15 1423

原创 JAVA动态绑定机制

动态绑定是实现多态的关键,调用者根据接口调用,动态绑定机制会根据运行时对象的实际类型执行相应的实现代码。当编译类型为父类,运行类型为子类时,如何确定程序运行的是哪个类中的方法。当调用对象的属性时,没有动态绑定机制,哪里声明就使用哪里。当调用对象的方法时,该方法会和该对象的运行类型绑定。注释掉Dog类的behavior方法后。

2023-10-09 00:22:02 41 1

空空如也

空空如也

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

TA关注的人

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