- 博客(36)
- 收藏
- 关注
原创 MySQL的索引下推是什么
而索引下推会让存储引擎层得到符合zipcode=1的数据之后,直接过滤lastname = '%a'的情况,然后再返回server层。如果没有索引下推,那么存储引擎索引只可以应用到到zipcode,不可以应用到firstname和lastname。,where查询中的部分条件可以下推给存储引擎去过滤,而不需要交给sever层,从而减少回表查询的一种机制。索引下推是指自从MySQL5.6以后,
2025-04-10 17:38:57
450
原创 快速排序笔记
特性快速排序时间复杂度(平均)时间复杂度(最坏)(O(n^2))(可优化)空间复杂度(O(\log n))(递归栈)稳定性不稳定优化方式随机化基准、三数取中、小数组插入排序、双轴快排适用场景通用内部排序,实际应用中最快适用于大规模数据排序,在大多数情况下比归并排序和堆排序更快。不适合稳定性要求高的场景(如数据库索引排序)。优化后的快速排序(如随机化 + 三数取中 + 小数组优化)在工程实践中几乎不会出现最坏情况,是最高效的排序算法之一。
2025-04-07 10:36:58
830
原创 什么是跨域
即使 XSS 攻击成功,恶意脚本也只能访问当前源的数据,无法直接读取其他标签页或 iframe 中不同源的内容(除非目标网站配置了错误的 CORS)。虽然同源策略不能完全阻止 CSRF(因为表单提交可以跨域),但配合服务端的 CSRF Token 和浏览器限制跨域 AJAX 请求,能大幅降低风险。恶意网站利用用户已登录的 Cookie 发起伪造请求(如通过隐藏表单提交)。的 Cookie 附加到请求中,恶意网站就能以用户身份完成转账操作。员工的浏览器会直接访问内网系统并返回数据,导致公司内部信息泄露。
2025-04-07 09:36:34
927
原创 选择排序笔记
基础版就是每次在未排序的数中选一个最小的放到左边已排序的末尾,而优化版的快速排序就是每次不仅把最小的放到左边,也把最大的放到右边,减少遍历次数,这里的实现要结合双指针。原始数组 [5₁, 2, 5₂, 1](5₁ 和 5₂ 是值相同的两个元素)。第一轮选择最小元素 1,与 5₁ 交换 → [1, 2, 5₂, 5₁]。每次从未排序部分选择最小(或最大)元素,放到已排序部分的末尾。交换操作可能跨越多个位置,破坏相等元素的原始顺序。此时 5₂ 跑到了 5₁ 前面,相对顺序改变。最好/最坏/平均情况均为。
2025-04-03 14:31:57
407
原创 冒泡排序笔记
判断的依据就是,当某一轮的尝试“冒泡”的过程中,如果发现数据并没有进行交换,那么这时候就直接结束排序过程。通过相邻元素的比较和交换,使较大的元素逐渐“浮”到数组的末尾。所谓优化,就是数据已经排好序的情况下提前终止冒泡排序。(像气泡从水底冒到水面一样)(即使有序,仍然会完整遍历)(即使有序,仍然会完整遍历)最坏情况(完全逆序)最坏情况(完全逆序)
2025-04-03 13:46:58
253
原创 MySQL的索引类型有哪些
l. 空间索引(用于空间数据查询,主要用于MyISAM 和 InnoDB 存储引擎中地理信息数据)c. 倒排索引 (全文索引,Full-Text,适用于大文本字段)d. R+树索引(适用于存储和查询地理信息系统中的空间数据)e. 聚簇索引(主键索引,叶子节点存储完整数据)b. 哈希索引(常用于 Memory)j. 唯一索引(保证索引中值是唯一的)f. 非聚簇索引(非主键索引的索引)g. 普通索引(二级索引、辅助索引)h. 主键索引(每行数据唯一的主键)i. 联合索引(多个列构成的索引)
2025-04-03 10:38:39
202
原创 MySQL 的Change Buffer 是什么?它有什么作用?
聚簇索引(主键索引)存储了完整行数据,其他索引(如二级索引)通常指向主键。如果主键未及时更新,可能导致二级索引引用失效。(如并发插入相同值,内存中未合并的 Change Buffer 无法拦截冲突)。(如隔离性、一致性)。
2025-04-03 09:40:58
225
原创 常见前端GET请求以及对应的Spring后端接收接口写法
Spring MVC 默认要求显式声明非对象参数的来源。• 浏览器原生 API,适合非 Axios 场景。• 手动拼接 URL,适合参数少且固定的场景。实体类中存在但前端未传递的字段(如实体类有。• 代码更简洁,自动处理 URL 编码。字段,但 JSON 中无此字段)。• 适合动态字段(参数名不固定)。• 参数较少时使用,灵活性较差。• 需自行处理参数编码(如。• 自动处理特殊字符编码。• URL 参数名必须与。时,Spring 会。• 需手动处理类型转换。• 需手动构建实体类。• 参数可动态扩展。
2025-04-02 15:43:45
414
原创 SpringBlade 数据库字段的自动填充
如果这些字段需要自动记录操作人信息,无需任何修改,框架会持续自动维护这些字段。方式三:关闭全局自动填充(不推荐)方式二:覆盖框架的自动填充逻辑。方式一:从实体类中移除字段。
2025-04-02 15:01:48
454
原创 383. 赎金信
这道题应该有很多解法,这里主要是为了记录一下,类似这种题,来记录字符串字母个数的,我们可以利用一个新建的char数组或者利用哈希来进行记忆,具体利用什么看情况。时间复杂度:O(m+n),其中 m 是字符串 ransomNote 的长度,n 是字符串 magazine 的长度,我们只需要遍历两个字符一次即可。空间复杂度:O(∣S∣),S 是字符集,这道题中 S 为全部小写英语字母,因此 ∣S∣=26。以下的解法思路有点臃肿,这里也懒得优化了,主要表明可以用哈希表记忆。
2025-03-31 21:28:34
351
原创 Java 中集合转数组的方法
• 转换后的数组是独立的副本,修改不会影响原集合(除非使用。• 如果传入的数组大小不足,会自动创建新数组。• 返回的是 Object[] 数组。• 适用于 Java 8 及以上版本。• 无法直接转换为特定类型的数组。• Java 11+ 推荐使用。)转换为基本类型数组需要额外处理。• 适用于需要特殊处理的场景。只需要 Object[] 时。• 可以指定返回的数组类型。Java 11+ 通用方案。Java 8+ 简洁代码。• 基本类型集合(如。
2025-03-30 20:19:33
485
原创 Java 中数组转集合的方法
记住,数组和集合之间的转换可能会影响性能,特别是在处理大量数据时。• 对于基本类型数组:使用 Stream API 的。:返回的 List 是不可变的。基本类型数组需要特殊处理,因为。• 如果不需要修改集合:使用。这种方法创建的 List 是。• 如果需要可变集合:使用。• 返回的 List 是。的,不能添加或删除元素。Java 9 引入了。
2025-03-30 19:33:19
264
原创 208. 移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。进阶:你能尽量减少完成的操作次数吗?
2025-03-29 17:04:42
318
原创 128. 最长连续序列
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。
2025-03-29 16:27:50
158
原创 49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
2025-03-29 16:13:27
154
原创 1. 两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出 和为目标值target的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。进阶:你可以想出一个时间复杂度小于O(n^2)的算法吗?
2025-03-29 16:03:32
135
原创 Java8 Stram流
同种数据类型的多个数据通过Stream接口的静态方法of(T... values)生成流。返回由该流的不同元素(根据Object.equals(Object) )组成的流。对流中的每个元素进行映射转换,生成一个新的流。把"张"开头的集合中的长度为3的元素存储到一个新的集合。跳过指定参数个数的数据,返回由该流的剩余元素组成的流。Map体系集合把Map转成Set集合,间接的生成流。返回此流中的元素组成的流,截取前指定参数个数的数据。把集合中所有以"张"开头的元素存储到一个新的集合。
2025-03-29 12:03:03
772
原创 JWT令牌及其在SpringBoot中的实现
这样,服务端可以确信JWT的内容是可信的,因为只有拥有正确密钥的服务端才能生成有效的签名。同时,由于JWT中包含了用户信息和权限声明,服务端可以通过解析JWT获取到这些信息,无需再进行数据库查询,从而提高了性能。当用户进行身份认证时,服务端验证用户的身份,如果验证成功,服务端会生成一个JWT并将其返回给客户端。服务端在接收到请求后,会解析JWT,并验证其签名的有效性,从而确定用户的身份和权限。将计算得到的签名与JWT中的签名部分进行比较,如果一致,则说明JWT没有被篡改。
2025-03-27 11:49:43
286
原创 SpringBoot Redis 配置 ssl 加密传输 和 密码认证
1、Redis 服务端(需支持 SSL),注意开源redis不支持开源。Jedis 需要依赖额外的 SSL 库(如。Redis 的 SSL/TLS 加密传输是通过。(Spring Boot 2.x+ 默认客户端)的配置,注意不是 SSL 登录认证。2、 Spring 通过。客户端库连接 Redis。
2025-03-26 22:57:24
415
原创 登录页生成验证码图片
支持行为验证(滑动、点选等),适合高安全场景。功能类似,集成在Hutool工具包中。轻量级、支持多种类型、配置简单。老牌验证码库,但配置较复杂。
2025-03-26 22:53:13
192
原创 mybatis反序列化失败
估计这里是因为同事存入redis的 数据有些问题,可能是因为序列化的时候数据被弄的有些问题。我直接改了redi存入的数据库,从13 改为11。:从字节数组读取数据时抛出了。(这种情况本不应该发生)。
2025-03-24 10:47:51
356
原创 前后端登录无法同步session的问题
解决了通过接口调试可以实现session同步,但前后端登录无法同步session的问题。但调用getUserLogin接口时无法获取之前存入的登录态。后来,重写拉取前端项目,将端口8101改成后端端口8121。
2025-03-23 13:01:56
173
原创 第一章 概述
21世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。有多个网络通过一些路由器相互连接起来网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘部分中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其他主机通信路由器起特殊作用,是一种专用计算机,实现分组交换的关键构件,这是网络核心部分最重要的功能。精确定义未统一较好定义【PETE12】:计算机网络主要是由一些通用的、可编程的硬件。
2024-10-22 16:48:07
1085
原创 计算机网络谢希仁第八版pdf
链接:https://pan.baidu.com/s/1OkkD3NQNaal1hhn3Yd3XKA。通过百度网盘分享的文件:计算机网络 (第8版)- 谢希仁.pdf。
2024-10-20 13:40:04
14935
13
原创 第四章存储管理
阿里云提供的海量、安全、低成本、高持久的对象存储服务OSS提供与平台无关的API接口【 任何应用,任何时间,任何地点存储和访问任何类型的数据】
2024-10-19 17:00:50
1019
原创 Benchmark自主学习报告
总的来说,benchmark是分析系统性能的一个重要过程,它让我们更好地了解系统的性能状况,识别潜在的瓶颈,并采取相应的优化措施。无论是在硬件选择、软件优化、系统调优还是云服务选择等方面,都是必不可少的一个过程。当然,我也希望自己在基准测试方面的知识和技能能不断提升,未来在benchmark领域有一定成果。
2024-03-02 20:08:13
1434
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人