自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Day04

每个对象有一个 monitor(监视器锁),当线程第一次获取该对象的锁,锁计数器 + 1,如果这个线程再次请求同一个锁(重入),计数器继续 + 1,直到退出 synchronized 块或方法时,计数器依次递减,归0时真正释放锁。notify():只唤醒一个线程,其他线程仍处于等待状态。线程处于 wait() 状态时,会释放对象锁并进入等待队列,底层实际上调用了类似 LockSupport.park() 的方法,使线程进入等待(WAITING)状态,线程此时没有占用CPU资源。

2025-05-27 21:59:25 352

原创 Day03

MySQL的事务遵循ACID原则。

2025-05-26 16:30:28 426

原创 Day02

首先,在消息生产阶段,生产者发送消息后必须等待 RabbitMQ 返回确认(ack),如果出现异常则需要重试,确保消息成功写入队列,避免消息丢失。其次,在消息存储阶段,RabbitMQ 通常以集群方式部署,消息会同步写入多个节点副本,即使某个节点宕机,也能保证数据不丢失,提高系统的高可用性和容错能力。最后在消息消费阶段,消费者在完成消息处理后才发送确认,这样如果消费者异常宕机,消息不会丢失,RabbitMQ 会将未确认的消息重新投递给其他消费者。另外,通过分布式锁防止并发写冲突,也是保障一致性的重要手段。

2025-05-25 22:15:52 671

原创 Java多线程&JUC

多线程是一种程序执行方式,它允许一个程序在同一时间运行多个线程,每个线程可以看作是程序中的一个执行单元。多线程的目的是提高程序的并发性、利用多核CPU的性能、提升执行效率。

2025-05-25 21:01:29 799

原创 Day01

幻读:一个事务中前后两次执行相同条件的查询,结果集的记录条数不一致,因为其他事务插入了符合条件的新数据。它的核心思想是:每个事务在读数据的时候,其实看到的是数据在某个时间点的“快照”,而不是最新的值。快速排序是不稳定的算法,是基于比较的内部排序中性能最好的方法之一,当待排序关键字是随机分布时,平均时间复杂度为O(nlogn),适用于内存足够且速度要求高的场景。MVCC 让事务在读数据时看到的是符合当前事务版本的数据快照,从而避免加锁冲突,实现高并发读操作,是 InnoDB 保证性能和一致性的重要机制。

2025-05-24 15:37:59 882

原创 Day54 验证二叉搜索树

空间复杂度:O(n),其中 n 为二叉树的节点个数。递归函数在递归过程中需要为每一层递归函数分配栈空间,所以这里需要额外的空间且该空间取决于递归的深度,即二叉树的高度。最坏情况下二叉树为一条链,树的高度为 n ,递归最深达到 n 层,故最坏情况下空间复杂度为 O(n)。时间复杂度:O(n),其中 n 为二叉树的节点个数。在递归调用的时候二叉树的每个节点最多被访问一次,因此时间复杂度为 O(n)。时间复杂度:O(n),其中 n 为二叉树的节点个数。空间复杂度:O(n),其中 n 为二叉树的节点个数。

2025-04-20 13:58:48 292

原创 Day53 二叉树的层序遍历

​​空间复杂度​​:O(n)(最坏情况下队列存储所有叶子节点)​​空间复杂度​​:O(h)(递归栈空间,h为树高)时间复杂度​​:O(n)时间复杂度​​:O(n)

2025-04-18 12:49:20 356

原创 GO语言入门

常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。显式类型定义:隐式类型定义:const (Unknown = 0 // 未知Female = 1 // 女性Male = 2 // 男性常量可以用函数计算表达式的值。const (a = "abc"b = len(a)函数体func:函数由 func 开始声明。

2025-04-14 13:47:05 1340 2

原创 Day52 连续数组

时间复杂度:O(n)空间复杂度:O(n)

2025-04-08 13:19:55 183

原创 Day51 数组中的k-diff数对

时间复杂度:O(n)空间复杂度:O(n)

2025-03-31 19:08:25 232

原创 Day50 单词规律

时间复杂度是 O(n),其中 n 是字符串 s 中单词的数量,或者是模式 pattern 的长度。因为我们只遍历了一次字符串和模式。空间复杂度是 O(n),因为我们使用了两个哈希映射来存储字符和单词的映射关系。

2025-03-30 22:03:29 354

原创 歌词json

【代码】歌词json。

2025-03-28 01:18:13 277

原创 Day49 最长连续序列

综合来看,总时间复杂度为 O(n),空间复杂度为 O(n)(存储 HashSet)。构造 HashSet:遍历 nums 存入 HashSet,时间 O(n)。每个元素最多访问两次(一次作为起点,一次在扩展时访问),总时间 O(n)。查找起点 & 计算最长序列:遍历 numSet 一次 O(n)。

2025-03-25 15:20:08 111

原创 Redis实战

数据表介绍:后端的最初功能都是基于Mybatis-Plus搭建的,前端代码后面有空再用Vue写更新。发送验证码:用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号如果手机号合法,后台此时生成对应的验证码,同时将验证码进行保存,然后再通过短信的方式将验证码发送给用户短信验证码登录、注册:用户将验证码和手机号进行输入,后台从session中拿到当前验证码,然后和用户输入的验证码进行校验,如果不一致,则无法通过校验,如果一致,则后台根据手机号查询用户,如果用户不存在,则为用户创建账号信

2025-03-13 15:30:58 735

原创 Day48 回文链表

【代码】Day48 回文链表。

2025-03-07 19:46:25 134

原创 Day47 环形链表

判断链表是否有环,通常可以使用 快慢指针法,该方法通过两个指针(慢指针和快指针)遍历链表,如果链表中有环,两个指针最终会相遇。如果链表中存在环,快指针最终会追上慢指针。否则,快指针会先到达链表末尾(null),说明链表没有环。时间复杂度:O(n),其中 n 是链表的节点数。快慢指针最多遍历整个链表一次。空间复杂度:O(1),只用了两个额外的指针,空间复杂度是常数。

2025-03-06 16:16:28 152

原创 React

JSX是React的核心内容JSX表示在JS代码中书写HTML结构,是React声明式的体现使用JSX配合嵌入的JS表达式,条件渲染,列表渲染,可以渲染任意的UI结构结果使用className和style的方式给JSX添加样式React完全利用JS的语言自身的能力来编写UI,而不是造轮子增强HTML的功能。(对比VUE)

2025-03-06 14:21:02 1349 1

原创 Day46 反转字符串

时间复杂度: O(n),其中 n 是字符串的长度,因为我们只遍历了一次字符串,并在每次处理时执行常数时间的反转操作。空间复杂度: O(n),用于存储字符数组。

2025-02-26 21:43:54 213

原创 Day45 最长公共前缀

时间复杂度:最坏情况下,每个字符串都需要与前缀进行比较,比较次数为 O(n * m),其中 n 是字符串数组的长度,m 是最长字符串的长度。空间复杂度:O(1)。

2025-02-25 19:17:27 205

原创 Day44 合并两个有序链表

时间复杂度:O(n)空间复杂度:O(1)

2025-02-23 16:15:43 210

原创 Day43 两数相加

空间复杂度:O(n),其中 n 是结果链表的长度(最多为两个链表的长度之和)。我们需要额外的空间来存储结果链表。时间复杂度:O(n),其中 n 是较长链表的长度。我们需要遍历两个链表的所有节点,每个节点只访问一次。

2025-02-22 19:24:38 120

原创 Day42 反转链表II

时间复杂度:O(n),其中 n 是链表的节点数。我们只遍历了链表的一部分,所以复杂度是线性的。空间复杂度:O(1),我们只使用了常数的额外空间。

2025-02-21 19:32:00 130

原创 Day41 移除链表元素

时间复杂度:O(n),其中 n 是链表的长度。每个节点最多被访问一次。空间复杂度:O(1),仅使用了几个指针。

2025-02-19 17:16:53 126

原创 RabbitMQ服务异步通信

每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目加载时配置:// 获取RabbitTemplate对象 RabbitTemplate rabbitTemplate = applicationContext . getBean(RabbitTemplate . class);

2025-02-18 20:50:51 1078

原创 多 级 缓 存

官方网站:

2025-02-17 20:24:52 1335

原创 分布式缓存

解压后:如果没有出错,应该就安装成功了。

2025-02-16 17:50:46 590

原创 分布式事务

本地事务,也就是传统的单机事务。

2025-02-15 19:46:23 949

原创 微服务保护---Sentinel

什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。可以认为:限流是对服务的保护,避免因瞬间高并发流量而导致故障,进而避免雪崩,是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围内,避免雪崩,是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html丰富的应用场景。

2025-02-12 20:51:13 1146

原创 分布式搜索引擎03

默认的拼音分词器会将每个汉字单独分为拼音,而我们希望每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。

2025-02-07 16:05:49 925

原创 分布式搜索引擎02

match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。

2025-01-21 22:49:53 1229 1

原创 分布式搜索引擎01

elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在github搜索代码:在电商网站搜索商品:在百度搜索答案:在打车软件搜索附近的车:lasticsearch结合kibana、Logstash、Beats,也就是elasticstack(ELK)。被广泛应用在日志数据分析、实时监控等领域:而elasticsearch是elasticstack的核心,负责存储、搜索、分析数据。elasticsearch底层是基于lucene来实现的

2025-01-18 14:26:01 1145

原创 RabbitMQ

建立connection创建channel利用channel声明队列利用channel向队列发送消息建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列。

2025-01-16 14:54:39 1302

原创 Docker

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。

2025-01-14 18:27:02 892 1

原创 Day40数组的度

时间复杂度:O(n),空间复杂度:O(n)。

2025-01-14 15:55:00 187

原创 SpringCloud

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。

2025-01-11 20:59:05 1342 1

原创 Day39 区间加法

时间复杂度:O(M²∗K),空间复杂度:O(M²)。时间复杂度:O(n),空间复杂度:O(1)。

2025-01-08 18:47:53 325

原创 Day38最小操作次数使数组元素相等

时间复杂度:O(n),空间复杂度:O(1)。

2025-01-07 14:42:20 167

原创 Day37灯泡开关

【代码】Day37灯泡开关。

2024-12-28 19:19:56 277

原创 Day36汉明距离总和

时间复杂度:O(nL),空间复杂度:O(1)。按照之前求海明码的做法做,暴力解超时。

2024-12-27 16:23:33 234

原创 Day35汉明距离

本题和 2220.转换数字的最少位翻转次数 一样。时间复杂度:O(n),空间复杂度:O(1)。

2024-12-26 21:13:46 364

elasticsearch资料

elasticsearch资料

2025-01-17

空空如也

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

TA关注的人

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