自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 synchronized锁,ReentrantLock 锁

(如程序计数器、栈指针、通用寄存器值等)到内存(通常是内核栈),再加载内核态的上下文。这个过程涉及多次内存读写(内存速度比 CPU 寄存器慢 100 倍以上),且需要严格保证操作的原子性(避免数据错乱),硬件层面的指令执行成本很高。切换时,CPU 必须保存当前用户态的。

2025-08-20 13:54:32 934 24

原创 线程安全的产生以及解决方案

是保证线程安全的三大核心要素 —— 线程安全问题的本质,几乎都是这三个特性中的一个或多个被破坏导致的。

2025-08-20 10:11:25 898 15

原创 常见的排序算法

例如,当数组中多数元素相同时,传统快排会将数组划分为 “小于基准” 和 “大于基准” 两部分,但重复元素会被多次处理,导致时间复杂度退化至 O (n²)。,尤其是对排序速度要求高且可接受不稳定排序的场景(如编程语言内置排序函数、日常业务数据排序)。:对插入排序的优化,通过分组(步长)减少元素移动次数,逐步缩小步长至 1。(如优先级队列、Top K 问题),或对时间复杂度稳定性要求极高的场景。:每次从剩余元素中找到最小(大)值,放到已排序序列的末尾。,或对排序稳定性要求严格的业务(如数据库查询结果排序)。

2025-08-18 13:35:52 709

原创 【Java】HashMap的详细介绍

扩容过程中,节点会从旧数组迁移到新数组,头插法在迁移时会反转链表顺序(例如旧链表 A→B,迁移后新链表变为 B→A)。若此时有多个线程同时操作,可能出现节点引用相互指向的情况(如 A.next = B 且 B.next = A),形成环形链表。后续查询时,线程会陷入无限循环,导致 CPU 占用飙升。原因是:数组容量小时,扩容成本低,通过扩容可分散元素,减少冲突;基于泊松分布,当负载因子为 0.75 时,链表长度自然增长到 8 的概率极低(约千万分之一),此时说明哈希冲突异常频繁,需要转为红黑树优化。

2025-08-15 14:56:47 1238 24

原创 【网络】TCP/UDP协议

TCP与UDP传输协议对比分析 TCP是面向连接的可靠传输协议,通过三次握手建立连接、确认应答、超时重传、滑动窗口和拥塞控制等机制确保数据可靠传输。其特点包括有序性、重传机制和流量控制,适用于文件传输、网页浏览等对可靠性要求高的场景。UDP则是无连接的不可靠协议,具有低延迟、高吞吐量特点,不保证数据顺序和可靠性,但传输效率高,适用于实时音视频、在线游戏等实时性要求高的场景。两种协议各具优势,TCP注重可靠性,UDP追求效率,应根据具体应用场景选择合适的传输协议。

2025-08-08 16:09:01 828 17

原创 【接口自动化】pytest的基本使用

Pytest是Python中流行的测试框架,支持单元测试、集成测试等功能。它通过特定命名规则(如test_前缀)自动发现测试用例,并提供丰富的命令行参数执行测试。框架支持前后置操作(setup/teardown方法)和更灵活的fixture机制,后者能管理测试资源(如数据库连接)并支持参数化。断言功能允许验证数据结构(列表、字典等)和接口返回值。参数化测试可通过装饰器实现,fixture还支持作用域控制(函数/类/模块/会话级)和自动调用。相比简单参数化,fixture更适合复杂场景的资源管理和动态数据生成

2025-07-22 14:40:14 876 1

原创 Charles的基本使用

摘要: Charles是一款支持多平台的网络抓包工具,主要用于HTTP/HTTPS流量分析、API调试及性能监控。其核心功能包括代理服务器、SSL解密、请求重放、断点调试及弱网模拟。相比Fiddler,Charles支持更多操作系统(macOS/Linux/Windows),但需付费使用。安装需配置Java环境,并完成SSL证书安装及代理设置。移动端抓包需同步网络环境,配置手机代理并安装CA证书。通过修改请求/响应内容及状态码,开发者可测试前后端异常逻辑,还支持模拟弱网环境评估性能表现。

2025-07-04 09:59:12 878

原创 博客系统测试报告(持续更新中)

111。

2025-05-22 15:56:41 164 3

原创 在线oj判题系统测试报告(持续更新中)

在线oj判题系统测试报告

2025-05-22 15:55:35 207

原创 【Mysql】详解InnoDB存储引擎以及binlog,redelog,undolog+MVCC

InnoDB是MySQL的默认存储引擎,分为内存和磁盘结构。内存结构包括Buffer Pool、Change Buffer、AHI和Log Buffer,用于加速数据访问和减少磁盘IO。Buffer Pool通过New和Old SubList管理数据页,采用LRU机制淘汰数据。Change Buffer优化二级索引的DML操作,减少磁盘IO。AHI通过自适应哈希索引提高查询效率。Log Buffer用于缓存日志数据,减少日志写入磁盘的频率。磁盘结构包括Redo Log和Undo Log,Redo Log用于

2025-05-17 12:04:44 848

原创 【多线程】阻塞队列,线程池,定时器

阻塞队列,线程池,定时器三个案例

2025-02-11 17:23:15 1030 62

原创 【Redis】主从模式,哨兵,集群

主从+哨兵+集群

2025-02-04 16:11:59 5332 85

原创 【Redis】缓存+分布式锁

Redis缓存+分布式锁

2025-01-27 19:15:27 3869 81

原创 【Redis】事务

Redis事务

2025-01-23 22:11:13 1151 38

原创 【Redis】持久化机制

Redis持久化

2025-01-23 22:08:57 2374 74

原创 【Redis】在Java中以及Spring环境下操作Redis

在ajva中使用Redis

2025-01-19 16:04:22 6214 66

原创 【BFS】解决FloodFill 算法

模版:vis[i][j]falsevis[i][j]true。

2025-01-17 09:20:01 809 33

原创 【网络】深入了解HTTPS协议

例如 :下载一个“天天动听”正常情况下:点击下载按钮, 就会弹出天天动听的下载链接.明文传输是比较危险的事情!!!加密:加密解密密钥。

2025-01-09 11:05:33 2154 91

原创 【网络】深入了解HTTP协议

深入了解HTTP协议

2025-01-01 15:15:56 3947 133

原创 【JVM】深入了解Java虚拟机-------内存划分、类加载机制、垃圾回收机制

介绍了jvm中的内存划分、类加载机制、垃圾回收机制

2024-12-30 15:23:12 1580 101

原创 【MySQL篇】使用Java操作MySQL实现数据交互

是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。

2024-12-29 15:08:20 6368 90

原创 【MySQL篇】事务的认识以及四大特性

脏读不可重复读和幻读都是由于并发事务互相干扰所导致的问题。为了避免这些问题,可以选择合适的事务隔离级别:读未提交:出现脏读,不可重复读,幻读。读已提交:防止脏读,但可能会出现不可重复读和幻读。可重复读:防止脏读和不可重复读,但可能会出现幻读。串行化:完全避免所有并发问题,但性能最差。

2024-12-24 23:02:14 3951 102

原创 【MySQL】深入了解索引背后的内部结构

【MySQL】深入了解索引背后的内部结构

2024-12-22 23:48:38 4708 99

原创 【MySQL篇】聚合查询,联合查询

并且让s1 为计算机原理 课程id为3 s2为java 课程id 为1。只能将它们转化成列与列比较大小,自连接将可以完成操作 自己与自己笛卡尔积。俩张表存在一一对应的情况 ,所有内连接和外连接找到的结果都是一致的;这些数据是全部排列组合的结果,并不是我们全部想要的;显示平均工资大于10000的角色和它的平均工资。列出 同学的名称 课程的名字 以及课程的成绩。当修改其中某个值,让它们不保存一一对应的情况。当对应不存在的列 会用null填充。求语文的最高分 和 英语的最低分。初始化数据,以便下一步的学习。

2024-12-20 23:35:03 5346 102

原创 【Redis篇】Set和Zset 有序集合基本使用

S。

2024-12-18 18:56:54 3435 69

原创 队列+宽搜

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。思路:给你二叉树的根节点root,返回其节点值的。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

2024-12-18 18:56:38 1374 41

原创 我的创作纪念日

我的创作纪念日

2024-12-10 13:02:52 541 12

原创 力扣Hot100刷题日常(链表篇上)

首先我们需要知道链表 A 和链表 B 的长度。因为在开始比较两个链表是否相交之前,我们需要确保它们有相同的起始点。从长度上来说,两个链表的交点一定会出现在它们后续部分的某个地方。如果两个链表的长度不同,那么我们可以通过调整链表的头节点来使它们有相同的比较起点。: 假设链表 A 比链表 B 长个节点,那么我们可以让链表 A 从第个节点开始遍历;如果链表 B 比链表 A 长,那么我们让链表 B 从第个节点开始遍历。这样我们就确保了两个链表的后续部分从相同的节点开始比较。

2024-12-08 13:41:18 3557 99

原创 Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

2024-12-04 14:09:00 7731 105

原创 【Redis篇】 List 列表

【Redis篇】 List 列表

2024-12-04 14:08:29 2963 54

原创 力扣Hot100刷题日常(最大子数组和,合并区间, 缺失的第一个正数,电话号码的字母组合)

子串 普通数组

2024-12-01 21:54:03 387 17

原创 【Redis篇】Hash的认识以及相关命令操作

【Redis篇】Hash的认识以及相关命令操作

2024-12-01 21:53:34 7083 97

原创 刷题日常(找到字符串中所有字母异位词,​ 和为 K 的子数组​,​ 滑动窗口最大值​,全排列)

刷题日常(找到字符串中所有字母异位词,​ 和为 K 的子数组​,​ 滑动窗口最大值​,全排列)

2024-12-01 11:17:15 1671 56

原创 【Rabbitmq篇】高级特性----事务,消息分发

【Rabbitmq篇】高级特性----事务,消息分发

2024-11-28 16:56:14 5471 61

原创 刷题日常(移动零,盛最多水的容器,三数之和,无重复字符的最长子串)

刷题日常(移动零,盛最多水的容器,三数之和,无重复字符的最长子串)

2024-11-26 14:04:42 1201 46

原创 刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)

刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)

2024-11-26 14:01:53 879 44

原创 【Redis篇】String类型命令详讲以及它的使用场景

【Redis篇】String类型命令详讲以及它的使用场景

2024-11-26 13:58:32 3892 70

原创 【Rabbitmq篇】高级特性----TTL,死信队列,延迟队列

详细介绍rabbitmq高级特性----TTL,死信队列,延迟队列

2024-11-24 10:40:38 15809 111

原创 每日刷题(有效括号序列,滑动窗口最大值,最小的K个数,寻找第K大)

算法

2024-11-24 10:40:18 1581 55

原创 【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制

介绍【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制

2024-11-21 13:02:12 8163 113

用C语言实现三子棋小游戏(详解)

三子棋代码的全过程

2023-07-30

空空如也

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

TA关注的人

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