自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java之内部类

类的五大成员:属性,方法,构造器,代码块和内部类内部类字如其名就是在类的内部定义一个类这个类就叫做内部类内部类最大的特点是可以直接访问私有属性,并可以体现类与类之间的包含关系。从种类上说,内部类可以分为四类:首先是定义在外部类的成员位置上的普通内部类(没用static修饰)和静态内部类(使用static修饰)然后是定义在外部类的局部位置上(比如说方法体内)的匿名内部类(无类名)、局部内部类(有类名)我们来一个个看:在这种定义方式下,成员内部类对象依赖外部类对象而存在,即在创建一个普通内部类对象时首先需

2022-06-14 22:34:41 1104

原创 MySQL进阶篇-InnoDB引擎(超细)

本文详细介绍了InnoDB存储引擎的逻辑存储结构、架构、事务原理和MVCC机制。逻辑存储结构包括表空间、段、区、页和行,其中表空间用于存储记录和索引,段管理多个区,区是表空间的单元结构,页是磁盘管理的最小单元,行是数据存储的基本单位。InnoDB的架构分为内存结构和磁盘结构,内存结构包括缓冲池、更改缓冲区、自适应哈希索引和日志缓冲区,磁盘结构包括系统表空间、独立表空间、通用表空间、撤销表空间、临时表空间和双写缓冲区。这些组件共同协作,提升InnoDB的性能和可靠性。

2025-05-19 17:22:14 943

原创 OpenCV-图像分割

实验1展示了如何使用OpenCV和Matplotlib库对图像进行灰度转换和多种阈值化处理,包括BINARY、BINARY_INV、TRUNC、TOZERO和TOZERO_INV等操作,并通过子图展示处理结果。实验2则演示了自适应阈值处理,通过均值和高斯方法对图像进行局部阈值化,并分析了不同参数对结果的影响。实验3进一步结合了中值滤波和固定阈值与自适应阈值分割,展示了不同分割方法的效果。这些实验共同展示了图像处理中常用的阈值化技术及其应用场景。

2025-05-18 09:08:34 1235

原创 OpenCV-python数学形态学

本文介绍了三个图像处理实验,分别通过形态学操作提取图像边缘、进行Hit or Miss变换以及提取图像中的水平线或垂直线。实验一通过膨胀和腐蚀操作获取图像边缘,并对结果进行二值化和反色处理,最终得到清晰的边缘图像。实验二通过Hit or Miss变换,匹配输入图像中的特定模式,提取出边缘信息,展示了核在图像上的匹配过程。实验三通过形态学开操作,提取图像中的水平线或垂直线,并对结果进行反色处理,展示了线条提取的效果。三个实验均通过代码实现,并展示了处理前后的图像对比,验证了形态学操作在图像处理中的有效性。

2025-05-18 09:04:30 1013

原创 OpenCV-几何变化和图像形态学

该代码演示了如何使用OpenCV库中的WarpAffine函数进行图像基础的仿射变换。

2025-05-18 09:02:30 883 1

原创 OpenCV-去噪效果和评估指标方法

本实验主要探讨了图像处理中常见的噪音类型及其去噪方法,并通过实验验证了不同去噪方法的效果。常见的噪音类型包括高斯噪音、椒盐噪音、毛刺噪音、泊松噪音和光斑噪音。针对这些噪音,实验采用了均值滤波、中值滤波、高斯滤波、双边滤波、非局部均值滤波、K近邻平均滤波和快速傅里叶变换等多种去噪方法。实验设计选取了彩色图像,对其进行灰度化处理并添加高斯噪音和椒盐噪音,分别使用不同的去噪方法进行处理,并通过峰值信噪比(PSNR)和结构相似性指标(SSIM)进行评估。实验结果表明,不同的噪音类型和去噪方法对图像质量有显著影响,选

2025-05-18 08:57:29 1061

原创 OpenCV-python边缘检测和金字塔

本文介绍了三个基于OpenCV的图像处理实验。实验1展示了均值滤波效果,通过调整轨迹条改变滤波核大小,实现图像平滑处理。实验2实现了高斯滤波,将彩色图像转换为灰度图像后,使用自定义高斯卷积核进行滤波处理,有效减少图像噪声。实验3进一步扩展了高斯滤波的应用,通过滑动条实时调整高斯滤波的核大小和标准差,动态展示不同参数下的滤波效果。这三个实验均通过OpenCV库实现,展示了图像处理中常用的滤波技术,并提供了交互式界面,便于用户观察不同参数对图像处理效果的影响。实验结果表明,均值滤波和高斯滤波都能有效平滑图像,但

2025-05-18 08:50:33 1019

原创 OpenCV-python灰度变化和直方图修正类型

实验1至实验5展示了多种图像处理方法。实验1使用加权平均值法将彩色图像转换为灰度图像,通过0.3、0.59和0.11的权重对RGB通道进行加权平均。实验2采用最大值法,将RGB通道的最大值作为灰度值。实验3使用平均值法,对RGB通道取平均值作为灰度值。实验4通过加权平均值法,并优化浮点运算,加速灰度转换。实验5对图像进行截断操作,将超过255的像素值截断为255。这些实验展示了不同的灰度化方法及其效果,适用于不同的图像处理需求。

2025-05-18 08:44:50 1089

原创 MySQL进阶篇2-SQL优化、锁

本文介绍了SQL语句的性能优化方法,主要包括插入数据优化、主键优化、order by优化、group by优化和limit优化。在插入数据时,建议采用批量插入、手动提交事务和主键顺序插入,以提高效率。主键优化部分解释了页分裂和页合并的概念,并提出了主键设计原则。order by优化建议尽量使用索引排序,避免使用filesort。group by优化强调遵循最左前缀原则,避免使用临时表。limit优化则建议通过连表查询等方式减少数据扫描量。通过这些优化措施,可以有效提升SQL查询的性能。

2025-05-10 23:12:59 862

原创 Mysql进阶篇1-存储引擎、索引、SQL性能分析指令

Mysql结构图-mysql执行sql的过程。

2025-05-03 10:51:04 770

原创 Redis最佳实践

得到的是每一种数据类型占用内存最多的那一个,排名第一的不一定是bigkey,即使第一个是bigkey那排名第二的也可能是bigkey,只显示排名第一可能就把排名第二的bigkey错过了。原来一个key就能保存现在需要多个key,虽然从数据上看没有增多,但是每一次存储k-v结构在redis内部都是有很多原信息要保存的,key越多现在想要存储的。利用redis-cli提供的–bigkeys参数,可以遍历分析所有key,并返回Key的整体统计信息与每个数据的Top1的big key。

2025-04-28 10:51:58 1196

原创 Redis 分布式锁+秒杀异步优化

所以这里使用UUID作为表示,由于这里UUID是static属性,所有对象公用一个,只能表示JVM的唯一性,而不能标识JVM中的线程,所以释放锁的时候比对ThreadId。一个JVM一个锁监视器,只能保证请求该JVM的线程互斥,保证不了其他JVM的,所以分布式情况下也可能两个线程(userid相同)进入同步代码块,导致线程安全问题。不可重入:方法A调用方法B,方法A和方法B都需要获取到该锁资源,若是不可冲入锁,会导致死锁,A执行不完不能释放锁,B拿不到锁导致A执行不完。

2025-04-15 16:05:04 720

原创 Redis-高级篇(分布式缓存/持久化)

所以全量同步的过程就是如下图:slave来和master同步时,会携带replid和offset,replid不一致就说明是第一次来,然后master就会返回自己的replid和offest,slave记录这两个值,以后来时都携带上和master做增量同步。此时我们有一个新的Redis,该Redis性能比较好,需要把原来的master替换掉,这种场景就可以使用本小结的命令来执行,让其成为master的slave,然后把master替换掉。fork子进程,压缩,写入RDB文件都比较耗时。

2025-04-15 09:24:28 719

原创 RabbitMQ从入门到实战-3(高可靠性)

前言保证消息的到达是使用MQ的一个关键也是一个前提MQ消息达不到数据库有三种可能1.发送消息的支付服务因为网络波动等原因消息为发出去2.mq挂了,消息没转发出去3.交易服务挂了,没有收到信息下面解决方案也是主要针对这三种情况进行解决但就算解决也不能保证100%不丢失,所以会有一些二兜底方案-延迟消息。

2025-04-09 17:53:07 1011

原创 线程安全问题解决方案-单机环境

线程安全问题-商品超卖主要是先查后删,你查到的时候可能别的线程还没删完,后而你又删,造成了多删,致使我们的外卖超卖。

2025-04-01 11:49:40 329

转载 Lambda表达式 And Stream流

Function<T,R>也是一个函数式接口 R对应返回结果,T 为参数类型,将参数t进行apply里面的操作然后返回 R。比如该方法 集合中每一个元素对应s,s执行s.startWith(‘张’),如果结果为true就留下,false过滤掉。这个lambda表达式就相当于一个匿名对象,两种效果相同,实现那个接口。因为只有一个抽象方法,所以方法名是固定的,这里就省略了实现方法名。(Function接口中的方法 R apply(T t))返回一个stream对象,这个就是我们的流对象。

2025-03-19 17:13:50 49

原创 涨知识-关于局部内部类访问局部变量

当method()方法出栈之后,new Inner()对象仍然想使用int num,就无法使用了。因为当调用这个方法时,局部变量如果没有final修饰,它的生命周期和方法的生命周期是一样的,那么如果局部内部类对象还没有马上消失,想用这个局部变量时,就没有了。final修饰的变量是常量,进入常量池,不在栈中。局部内部类在访问它所在方法中的局部变量必须用final修饰,为什么?int num的生命周期和method()方法的生命周期是一样。常量池的作用:延迟变量的生命周期。会在类加载的时候进入常量池,

2025-03-19 15:38:59 866 6

原创 SQL练习

本篇是本人SQL练习中的一些总结和收获。

2025-03-18 15:54:19 390

原创 RabbitMQ从入门到实战-2

这篇讲解通过java客户端操作rabbitmq。

2025-03-09 09:33:56 829

原创 RabbitMQ从入门到实战-1

需要绑定交换机队列之间的关系,交换机只能做路由,没办法存储消息发送信息后exchange的控制台显示一条进,两条出(这个交换机连了两个队列,所以1:2)queue也接收到了(这里是2因为我试了两次)

2025-03-03 10:08:34 350

原创 Docker

Docker就是帮我们快速帮我们部署项目和各种组件的的工具正常在linux上装mysql很麻烦,步骤也很多但是你用docker就可以一行代码就搞定类似应用商店?可以直接帮我们下载各种东西,不用来回找运维这块干的较多。

2025-03-01 18:23:44 849 4

原创 配置虚拟机Linux和ssh

(所以配置SSH要写的IP地址要与虚拟机的IPV4地址相对)虚拟机开启,SSH才可以连接到对centos进行操作。Vmware是虚拟机用来运行我们的centos7(Linux的一个发行版本)而我们的SSH(MobaXterm)是连接到我们centos7进行操作的。这里参考下面的环境搭建。下面是我搭建好的这个。

2025-03-01 14:33:31 260

原创 Git快速入门

Git就是版本控制的工具下面这个叫手动控制版本svn是集中版本控制只有一个服务器有全部代码git是分布式版本控制安装后有三个不同选项的可以进行版本管理建议用 git bash。

2025-02-28 23:20:01 1180

原创 Spring(历史)

这里主要针对于spring的针对性学习spring底层架构上层依赖下层核心容器-IOCAOP依赖于IOC,AOP是一种思想,而真正实现我们是用了Aspects做的api吧(spring官方直接把人的借鉴了)web开发和数据库开发(含事务)也继承在系统架构中。

2025-02-27 09:27:48 424

原创 Seata

分布式事务产生原因比如这个购买行为触发看三个服务的三个行为,但是当库存有错误时候没法提交就会回滚,但是其他两个没有错误就不会回滚这样会导致数据的不一致性不同服务模块连接不同数据库每个服务器对应的数据库不同确保每个服务都能正常的扣减/增添(逻辑功能正常)本地事务测试使用注解式事务标记测试springboot还要写个开启事务的注解?(我记得以前没用过这一步)然后这个可以保证我们在注解标注方法抛异常时候进行回滚但是这个只有在单体架构时候有用然后我们打通一下远程链路。

2025-02-26 17:38:17 709

原创 GateWay

左边的是响应式网关,右边是传统网关(Servlet年代)推荐左边的需求。

2025-02-26 11:40:28 525

原创 Sentinel

使用Sentinel要明白1.先定义你需要保护的资源这里的资源我们的那些web接口(controller的那些方法)是默认就配置的我们也可以使用注解标志方法为我们想保护的资源2.然后定义各种保护规则3.违反规则后我们要不要处理这个异常,怎么处理这个异常。

2025-02-25 23:10:53 1582

原创 OpenFeign

这样就是调用我们上面那个default。

2025-02-24 18:04:43 978

原创 Nacos

工程目录最大父工程对springboot,spingcloud,springcloudaliaba进行依赖管理,打包方式为pomservices进行依赖传递,打包也为pom好像打包为pom也可以进行依赖传递,也可以进行版本管理,打包为pom只是说他是一个聚合工程/父工程导入一下nacos的服务发现依赖和服务调用(不用写版本,应该是cloud-demo的springcloud什么的有关于这个的依赖管理)nacos核心功能就是服务注册和服务发现去官网下载zip,解压,然后放到无中文目录,目录中

2025-02-24 11:44:11 782

原创 微服务框架及其中出现的各种问题和对应的解决方案/组件

然后通过一个网关(nignx)进行负载均衡,平均将请求分给每个服务器(他有自己的算法,可能也不是平均),网关就起到一个路由的作用。就是把我们的功能单独出来做成微服务,同时我们数据库也可以拆分成不同的库(比如商品就用商品表和一些其他的表)然后有重复业务,比如订单表要查商品的数据库,就去请求商品的微服务(远程调用),而不是直接去访问商品数据库。(如果这个服务多个服务器都有,也可以做负载均衡,第一次请求0.4,第二次请求0.5)比如用户调订单,订单卡了,就快速返回错误信息,就用户不等订单。

2025-02-22 22:03:43 388

原创 MybatisPlus-扩展功能

这样返回的是对象名啊,如果想设置别的作为返回的json数据的话,用@JsonValue标注。因为他是enum类型如果你查出个3他也没法创建啊,枚举类不给set,且构造方法是私有的。但是枚举类型和数据库中表的字段不匹配,怎么实现这个数据类型的转换呢?枚举类那个对应表的字段一定要包含数据库对应字段所以可能出现的情况。我们查User表里面有个Userinfo的json属性。我们就用对象接收UserJson,需要json处理器。分页查询实体(所有业务分页查询都可以用它)和封装VO的过程是每个分页查询都会做的。

2025-02-16 17:55:36 755

原创 Spring依赖循环问题

其实也不是很难就是B中注入A的二级缓存对象就可以用为什么?因为虽然B中注入的不是完整初始化的A,它算是个引用吧当B操作执行完A再执行完,A就完全初始化放入一级缓存,而我们对象如果是单例的话,对应B中A的依赖注入不也完成初始化了吗填充时用的是对象引用,都是单例的。等a完全创建完后,b中的a不就也可以了吗。

2025-02-16 11:39:32 610

原创 Mybatisplus-IService

IService类似于我们的BaseMapper吧现在就是Service层的那些简单的CRUD也不用写了下面是方法图。

2025-02-15 19:57:42 663

原创 Mybatisplus自定义sql

mybatisplus最擅长的将where里面的语句给简便化,而不用我们自己写标签来实现条件查询。而且一些语句查询的不同select count(*) xxx from xxx。但是很多公司规范我们将sql写在mapper层中,不能写在service中。再service中构建wrapper,构建完后传入方法。再在mapper.xml中写前半部分(where前的)如何又用到mp条件的便捷还可以自定义前半部分语句呢。这个是规范好了的,其他参数你就加就可以。创建方法,方法有一个必要参数。

2025-02-15 15:52:24 450

原创 SpringBoot自动配置-以Mybatis配置为例

自动配置的核心确实是通过参数类(通常是 @ConfigurationProperties 注解的类)来读取配置文件中的属性,并根据这些属性自动进行配置和实例化相应的 Bean。而如果一个bean没有用到这个参数类中的参数,我感觉和直接引用没什么区别。

2025-02-14 21:35:48 625

原创 博客项目day06-优化

但在每个接口上加缓存也不太现实,所以我们使用Spring的特性AOP和Redis来实现注解类@Target({@Target({切面类(规定切点和通知的关系)就是通过缓存名类名方法名参数的md5加密字符串,生成一个key,找redis有没有对应value有就直接返回没有调用原方法,再将原方法的返回结果转为json存储到redis中,设置过期时间和key即可@Aspect@Component@Slf4j@Autowired/**

2025-02-13 16:56:28 306

原创 博客项目-day05(首页导航栏功能补全)

其实之前已经实现过文章和标签分类了但是这个对应的是导航栏的,多显示个图片所以新增两个这个请求。

2025-02-12 20:04:04 435

原创 博客项目-day04(写文章,图片上传)

需要三个功能1.查询所有文章分类2.查询所有文章标签3.发布文章。

2025-02-12 14:33:46 297

原创 博客项目-day03(文章详情)

body里面就是文章内容,category是文章分类,文章和文章分类是一对多的关系service里面的操作分类那个查询还是很简单的lambda等于对应字段就行,这里不展示了。

2025-02-12 14:05:26 320

原创 博客项目-day02(登录/ThreadLocal功能)

这里使用JWT令牌技术进行登录功能的实现需要导入jjwt的依赖先看接口传入账号密码返回token先导入一个JWT工具类登录功能实现controllerService。

2025-02-10 21:47:04 397

Java项目-苍穹外卖-Day09-用户端以及管理端订单功能开发含配送范围识别

Java项目-苍穹外卖-Day09-用户端以及管理端订单功能开发含配送范围识别

2023-09-06

Java项目-苍穹外卖-Day01

数据库语句

2023-08-05

空空如也

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

TA关注的人

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