- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 (一)丶Windows安装RabbitMQ可能会遇到的问题
1.找到C盘目下的.erlang.cookie文件。替换完毕执行下面命令,出现第二张图内容即可!将两个目录下的内容替换为一致即可;
2025-03-21 14:54:22
497
原创 JAVA工具----自动化API文档APIFOX
前言:想必大家在后端开发的过程过,最烦的就是写接口文档了。然而如果是对接前写,就更加烦躁,可能之前写好的接口文档全都要改,还会占用大量的时间,一般的小团队也耗不起这样的费时。那么使用Swagger和侵入式注解这些方法,都需要我们在接口上打上注解,而且难免会有遗漏,而且过多的注解对我们的代码可读性来说很不友好;
2024-09-09 15:32:35
784
原创 什么是Hash冲突?如何解决Hash冲突?
Hash冲突是指在哈希表中,不同的关键字通过哈希函数计算得到的哈希值却相同的情况。这种情况会导致哈希表的性能下降,因为哈希表需要在同一位置上存储多个数据。
2024-09-05 14:55:54
684
原创 Java的时间复杂度和空间复杂度和常见排序
简介:时间复杂度和空间复杂度是评估算法性能的两个重要指标,他们分别用于衡量算法执行时间长短和算法所存储空间大小;
2024-09-04 15:25:52
1131
原创 Mysql剖析(四)----Mysql的行锁、表锁、间隙锁详解
简介:编程中的锁是一种同步机制,用于控制对共享资源的访问,确保同一时间只有一个线程可以访问共享资源,从而避免竞态条件和其他并发问题,保证线程安全和正确的数据访问。锁的概念来源于日常生活,其中锁和钥匙用于控制对某个空间的访问,确保安全隐私。在编程中,锁用于控制对共享资源访问,防止多个线程同一时间修改同一数据,从而引发数据不一致的问题。锁的实现方式多种多样,包括悲观锁和乐观锁等,具体选用哪种取决于应用程序的特定需求和并发控制的复杂性。
2024-08-29 16:47:24
1561
原创 Mysql剖析(三)----MySql的事务详解
事务(Transaction):一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中的各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL、C++或Java)书写的用户程序的执行所引起的,并用形如Begin Transaction 或 End Transation语句(或者函数调用)来界定。事务由事务开始(Begin Transation)和事务结束(End Transation)之间执行的全体操作组成。
2024-08-28 15:30:45
1209
原创 Mysql剖析(二)----Mysql的InnoDB存储引擎
简介:InnoDB是Mysql数据库管理系统中的一种存储引擎,他是Mysql的默认存储引擎之一。InnoDB的最大特色是支持了ACID兼容的事务功能,类似于postgreSQL,提供了行级锁和多版本并发控制等高级特性。与传统的ISAM和MyISAM相比,InnoDB具有更好的性能和可靠性,是事务型数据库的首选引擎。InnoDB是为处理巨大数据量时的最大性能设计的,完全与Mysql服务器整合,维持他自己的缓冲池以在内存中缓存数据和索引,InnoDB采用双轨制授权,包括GPL授权和专有软件授权。
2024-08-27 16:34:46
634
原创 Mysql剖析(一)----简述MYSQL聚簇索引、二级索引、索引下推
除了聚簇(主键)索引之外的所有索引都成为二级索引也就是非主键索引,二级索引的叶子节点内容是主键的值,主键长度越小,二级索引的叶子节点就越小,占用的空间也就越小;如果查询的字段是除了索引字段,还包含其他的字段,则通过辅助索引查找到主键,在通过主键到聚簇索引中查找对应的数据(也就是回表),可以通过聚簇索引和默认的索引下推机制可以避免回表;聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,就是按照每张表的主键构造一颗B+树,同时叶子节点存放的就是整张表的行记录数据,所以主键索引就默认使用到了聚簇索引;
2024-08-27 16:31:00
957
原创 Mysql的InnoDB存储引擎
简介:InnoDB是Mysql数据库管理系统中的一种存储引擎,他是Mysql的默认存储引擎之一。InnoDB的最大特色是支持了ACID兼容的事务功能,类似于postgreSQL,提供了行级锁和多版本并发控制等高级特性。与传统的ISAM和MyISAM相比,InnoDB具有更好的性能和可靠性,是事务型数据库的首选引擎。InnoDB是为处理巨大数据量时的最大性能设计的,完全与Mysql服务器整合,维持他自己的缓冲池以在内存中缓存数据和索引,InnoDB采用双轨制授权,包括GPL授权和专有软件授权。
2024-08-27 16:28:34
1031
原创 HashMap源码剖析
HashMap简介:HashMap是一个基于哈希表的Map接口实现,它提供了所有可选的映射操作,并允许使用null值和null键。HashMap是非线程完全的,这意味着在多线程环境下可能会存在问题,HashMap的设计思路是假定哈希函数将元素正确分布在各桶之间,为基本操作(如get和put)提供共稳定的性能。和。初始容量是哈希表在创建时的容量,而加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。
2024-08-26 17:34:42
738
原创 简述MYSQL聚簇索引、二级索引、索引下推
它是在数据查询的过程中,将通常由用户查询表达式处理的计算任务下推到数据存储层,比如从磁盘或内存的索引结构中直接完成部分计算,而不是等到所有的数据都被加载到内存后再进行处理。除了聚簇(主键)索引之外的所有索引都成为二级索引也就是非主键索引,二级索引的叶子节点内容是主键的值,主键长度越小,二级索引的叶子节点就越小,占用的空间也就越小;聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,就是按照每张表的主键构造一颗B+树,同时叶子节点存放的就是整张表的行记录数据,所以主键索引就默认使用到了聚簇索引;
2024-08-09 10:53:05
903
原创 达梦数据库(十) -------- mybatis-plus 整合达梦时,自动生成的 sql 语句报错
问题原因:mybatis-plus 生成的 sql 语句字段是小写的,同时还包含数据库关键字。框架会默认加上(`)符号,该符号在达梦数据库中无法被识别,需要更换为 (")。方案二:修改实体类的字段名称避免使用达梦数据库关键字。
2024-08-09 09:47:03
1062
原创 达梦数据库(九) -------- JAVA 的连接配置方式
在部分云环境下在配置达梦的数据库连接时,由于云环境无法配置/etc/dm_svc.conf 文件,针对集群的连接就无法配置服务名了。在应用程序所在服务器上配置 dm_svc.conf 文件。在 dm_svc.conf 文件中配置服务名。Windows 平台 dm_svc.conf 文件位。Linux 平台 dm_svc.conf 文件位于。,通过服务名连接集群可实现故障自动重连。在 dm_svc.conf 文件中配置。
2024-08-08 14:58:46
893
原创 达梦数据库(八) -------- JDK 包和驱动不匹配
错误提示:/driver dm.jdbc.driver.DmDriver is not sequoia compliant。更换 JDK 包就可以了。连接池的连接问题:连接要使用 DM 安装数据库后自带的 JDK 包。前言:这个错误是我遇到了之后去达梦官方文档看到解决的,朋友也也可以直接去官网看看。Linux 环境下一般 jar 包都在。Windows 在安装目录的。
2024-08-08 14:53:43
727
原创 达梦数据库(六) -------- 达梦数据库只导出表结构不导出数据
如下图所示:选择需要导出结构的表,如下图所示:迁移完成,表结构已经导出,如下图所示:DTS 同样可以将表结构迁移至其他数据库中或者从其他数据库迁移至 DM 数据库中;例如:MYSQL-DM,mongodb-DM;
2024-08-08 14:43:20
2602
1
原创 ThreadLocal 详解(三)内存泄露原因,以及强弱引用
在没有手动回收Entry以及CurrentThread依然运行的前提下,始终有强引用链 CurrentThread Ref -> CurrentThread -> ThreadLocalMap -> entryEntry就不会被回收( Entry中包括了ThreadLocal实例和value), 导致Entry内存泄漏。对于第一点:只有使用完Threadlocal,调用其remove()删除对应对的Entry,可以避免内存泄漏;
2024-08-08 11:53:37
934
原创 ThreadLocal 详解(二)ThreadLocal的原理
Threadlocal的原理涉及两个方面:Threadlocal实例和ThreadlocalMap;这是我画的草图。
2024-08-08 11:35:49
819
原创 ThreadLocal 详解(一)
Threadlocal叫做线程变量,意思是Treadlocal中填充的变量数据当前线程,该变量对其他线程而言是隔离的,并且变量在整个的生命周期有效。Threadlocal会为每个线程中都创建一个副本,那么每个线程可以访问自己内部的副本变量。Threadlocal内部通过Ma来存储每一个线程的变量副本,Map的Key就是当前的Threadlocal,Value值就是我们set的那个值,每次线程在get时候,都从自己的变量中取值,所以不会存在线程安全问题;
2024-08-07 11:28:38
874
原创 Spring Cloud Gateway 响应数据加密
实现了请求的解密和响应的加密,主要使用的是Hutool工具类中的AES加密算法。这种加密方式不仅用于请求数据的解密,还用于响应数据的加密。具体来说,Spring Cloud Gateway的加密和解密流程包括以下几个步骤:。通过这种方式,Spring Cloud Gateway确保了客户端和服务器之间的通信安全,防止数据被截获或篡改,同时也提供了一个有效的机制来验证通信双方的身份。Gateway响应数据加密:如下,只有返回数据为json才加密,对于下载还是返回的流这些都不做处理加密;
2024-07-16 14:13:42
1091
原创 使用 Java 8 的新特性(DateTime)来管理日期和时间
前言在 Java 中,日期和时间处理的核心类位于 java.time 包下,Java 8 引入了新的日期和时间 API,主要包括以下几个关键类:LocalDate:用于表示日期,不包含时间信息,例如:2023-09-03。LocalTime:用于表示时间,不包含日期信息,例如:15:30:45。LocalDateTime:用于表示日期和时间,不包含时区信息,例如:2023-09-03T15:30:45。
2024-06-27 17:26:22
817
原创 Kafka入门到精通(四)-SpringBoot+Kafka
这里有个坑,ConsumerRecord如果不加s会报错,我之间在借鉴他人代码的时候出现的,不知道是不是版本问题。我也刚用kafka,正在研究哈哈,见谅见谅;
2024-06-27 16:09:52
655
原创 Kafka入门到精通(三)-Kafka
Kafka是由开发的一个开源流处理平台,由和编写。Kafka是一种高的分布式消息系统,它可以处理消费者在网站中的所有数据。这种动作(,搜索和其他用户的行动)是在现代网络上的许多的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像一样的日志数据和系统,但又要求的限制,这是一个可行的解决方案。Kafka的目的是通过的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
2024-06-27 14:21:44
1239
原创 Kafka入门到精通(二)-安装Zookeeper
Zookeeper是一个开源的分布式协调服务,由Apache维护,旨在为分布式系统提供一致性、可靠性和高效的数据管理。它通过提供一系列简单易用的接口,封装了复杂且易出错的分布式一致性服务,构成了一个高效可靠的原语集。Zookeeper的设计目标包括提供高性能、高可用且具有严格顺序访问控制能力的分布式协调服务。顺序一致性:确保从一个客户端发起的事务请求最终会严格按照其发起顺序被应用到Zookeeper中。原子性。
2024-06-27 12:05:41
1101
原创 Kafka入门到精通(一)-安装Scala
Scala 是 Scalable Language 的简写,意味着这种语言设计上支持大规模软件开发,是一门多范式的编程语言,Scala 语言是由 Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布。Scala 运行于 Java 平台(Java 虚拟机),并兼容现有的 Java 程序。Scala 的编译模型(独立编译,动态类加载)与 Java 和 C# 一样,所以 Scala 代码可以调用 Java 类库(对于.NET实现则可调用.NET类库)。
2024-06-27 11:49:05
847
原创 JAVA生成压缩包 的同时在创建一层文件夹
前言:在Java开发中,有时候我们需要将一些文件或文件夹打包成zip压缩包,以便运输或存储。而有时候,我们还需要在压缩包内创建文件夹来存放不用的文件类型,本文将提供给用户打包压缩包同时提供,创建一层文件夹的方法;
2024-06-25 14:15:43
506
原创 达梦数据库(五) -------- 达梦数据库+mybatisPlus+springboot
前言:安装完达梦数据库后,需要初始化实例,在初始化实例时,需要注意大小写敏感的设置。大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改,只能重新初始化实例。
2024-05-30 17:14:47
2501
原创 Redis(三) Linux 上操作
概述:Redis是一个高性能的键值存储系统,常用于缓存、队列和发布/订阅系统。在Linux环境下,连接Redis并输入密码,可以使用Redis的命令行工具redis-cli来实现。上一篇文章我们介绍了安装redis以及可视化工具的使用,本文将介绍如何在linux上链接Redis并输入密码的流程,以及基本操作;其中,是Redis服务器的主机名或IP地址,是Redis服务器的端口号,默认为6379。这里的 是Redis服务器的密码。
2024-05-16 11:59:38
1657
原创 Synchronized简述
重量级锁:轻量级锁时通过自旋的方式争抢锁,并且适用于线程持有锁的时间不长的情况下(因为阻塞线程需要进行CPU状态,代价太大,所以自旋),当线程的自旋次数超过阈值(默认情况下是10)的时候为了防止cpu空转,会将自旋锁升级为重量级锁,并且将没有获取锁的线程进行阻塞;轻量级锁:当另外一个线程B获取锁时,发现锁一级处于偏向锁状态,此时线程B会用过CAS的方式尝试性争抢锁【修改对象头中的线程ID】(判断线程A是否存活,存活就不能进行修改),如果偏向锁抢锁失败,择偏向锁就升级为轻量级锁,如果抢锁成功则执行代码;
2024-04-12 15:39:46
438
原创 @Autowired和@Resource区别
Resource按照名称进行装配哦,名称可以通过name属性进行制定,如果没有name属性,当注解卸载字段上时,默认取字段名称进行名称查找。如果注解写在setter方法上默认取属性名称进行装配。依赖的注入功能,是通过在SpringIOC容器(单例池),中查询对象,再讲对象引入到当前类中,而查找又分别存在两种方式:按照名称查找(byName)和按照类型查找(byType)应用地方不同:@Autowried,应用在构造器、参数、方法、成员变量和注解上,@resource,则能用在类、成员变量、方法上。
2024-04-10 17:46:43
453
原创 (二)ffmpeg的相关命令,以及JAVA操作ffmpeg
二、常用操作视频命令 1.视频压缩 2.视频拼接 3.截取视频第一帧或者某一帧 4.图片转视频 4.图片格式转化三、java操作ffmpeg录制视频 1.相关代码 2.开始录制 3.结束录制 4.合并视频 5.其他操作结尾:干活满满,喜欢就点个赞收藏吧
2024-03-19 14:23:18
1039
原创 (一)Linux+Windows下安装ffmpeg
FFmpeg是一个开源的音视频处理工具集,由多个命令行工具组成。它可以在跨平台的环境中处理、转换、编辑和流媒体处理音视频文件。FFmpeg支持多种常见的音视频格式和编解码器,可以对音视频文件进行编码、解码、转码、剪辑、合并等操作。格式转换: FFmpeg可以将音视频文件从一种格式转换为另一种格式。无论是不同的容器格式(如MP4、AVI、MKV)还是不同的编解码器(如H.264、HEVC、AAC),FFmpeg都可以进行转换。
2024-03-19 11:54:55
945
原创 【AES】加密算法详解
随着互联网的发展,越来越多的隐私数据需要载网络中传输,为了保证数据的安全,我们将会对数据进行加密,今天我就介绍一种经典的数据算法AES(Advanced Encryption Standard)。高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
2024-03-19 10:37:21
2256
1
原创 (二)丶RabbitMQ的六大核心
Message Queue(消息队列)简称MQ,是一种应用程序对应用程序的消息通信机制。在MQ中,消息以队列形式存储,以便于异步传输,在MQ中,发布者(生产者)将消息放入队列,而消费者从队列中读取并处理这些消息,这种设计允许生产者和消费者之间解耦,提高系统的响应速度和吞吐量,MQ常用于解耦系统之间的依赖关系,提高系统的稳定性和可扩展性,MQ还支持消峰,即以稳定的系统资源应对突发的流量冲剂,然而使用MQ也可能带来一些挑战,如:系统可用性降低、系统复杂度提高、以及消息一致性问题等;
2024-03-14 11:36:58
842
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人