自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 问答 (4)
  • 收藏
  • 关注

原创 ​技术突破——Java规则引擎​

在最近的项目中,使用到了规则引擎。通过规则引擎讲规则代码从业务代码中抽离,使得规则易于修改。这种讲规则代码和业务代码解耦合的实现方式,比较感兴趣,所以对规则进行进行了宏观学习,以及后续的项目实践。如果今天是周末,就不用上班。如果天气很好,就去公园散步。如果冰箱里没有牛奶,就去超市买牛奶。你每天早上起来就会看这本规则手册,然后决定该做什么。规则引擎就像这本“规则手册”,它帮我们在软件系统中,根据预先定义的规则来做决定。

2024-09-22 20:27:29 494

原创 java解析json复杂数据的两种思路

注意这边实体属性一定要跟json数据字段key对应,否则会解析报错@Data@Data@DataString url;String top;

2024-09-14 17:06:07 1256 1

原创 Java中的List与Set转换

以上是一些常见的将Set转换为List的方法。在转换过程中,Set中的元素顺序可能会改变,因为List是有序集合,而Set通常是无序的。无论选择哪种方式,都可以将List转换为Set。注意,在转换过程中,如果List中包含重复元素,转换后的Set将只包含唯一的元素。总的来说,在多线程环境下,需要注意List和Set的线程安全性,并选择合适的线程安全实现类或并发集合类来确保线程安全。在选择使用List还是Set时,你需要考虑你的。的特性以及对性能和元素唯一性的需求。在Java中,List和Set都是。

2024-09-08 16:51:35 1364

原创 Java—可变参数、不可变集合

Java5 中提供了可变参数,可变参数是一种特殊形参,定义在方法、构造器的形参列表中。属性类型...参数名称int...args1. 可以不传参数;2. 可以传一个或者同时传多个参数;3. 可以直接传一个。常常用来接收数据。1. 可变参数在方法内部相当于是一个数组;2. 一个形参列表中的可变参数只能有一个;3. 如果除可变参数外还需传递其它参数,则可变参数必须放在形参列表的最后面。

2024-09-01 16:50:23 328

原创 ES(Elasticsearch)常用的函数

(简称ES)是一个开源的搜索引擎,广泛用于全文搜索、分析和数据可视化。

2024-08-25 16:15:32 425

原创 Kubernets命令总结

【代码】Kubernets命令总结。

2024-08-15 16:17:57 551

原创 将服务器的镜像打包发送到另一服务器

请注意,重新标记镜像并不会改变镜像的内容或结构,它只是改变了镜像在Docker中的引用方式。如果你将这个新的镜像推送到Docker仓库,它将使用新的Repository名字。在Docker中,镜像的"Repository"名字和标签(tag)是在构建或拉取镜像时指定的。但请注意,这只会删除该标签,不会删除实际的镜像数据(只要还有其他的标签指向它)。的镜像,并且想要修改其Repository名字(通常指的是镜像的名称),你可以使用。命令查看已加载的镜像列表,并找到您刚刚加载的镜像的名称和ID。

2024-06-19 09:58:37 1091 3

原创 拉取代码报错: SSL certificate problem: self signed certificate

使用SmartGit工具clone项目时,弹出框提示信息为“XXXX,SSL certificate problem: self signed certificate”在windows的命令行窗口执行指令:set GIT_SSL_NO_VERIFY=true git clone。提示信息为SSL认证失败,可以关闭SSL的认证。

2024-05-24 14:20:27 512

原创 Java8新特性-Optional

类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类。类可以包含或不包含null值的容器对象。如果存在值,则isPresent方法将返回true,而get方法将返回该值。除了Optional类之外,还扩展了一些常用类型的Optional,用法基本上相似。OptionalOptional作为一个容器承载对象,提供方法适配部分函数式接口,结合部分函数式接口提供方法实现NULL判断、过滤操作、安全取值、映射操作等等。Optional。

2024-05-19 13:43:57 1591 1

原创 OkHttpRequestUtils工具类解析与实战

OkHttpClient是一个开源的HTTP客户端,用于发送和接收HTTP请求。它是Square公司开发的,用于Android和Java应用程序的网络库。OkHttpClient内置了很多功能,包括连接池、请求和响应拦截器、TLS握手、请求重试等。它易于使用,具有简洁的API,同时还提供了丰富的配置选项,以适应不同的网络需求。使用OkHttpClient,开发人员可以轻松地创建和发送GET、POST、PUT、DELETE等类型的HTTP请求,并处理响应。

2024-05-11 14:35:03 831 1

原创 sql函数

请你编写一个 SQL 查询来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update。写一个查询语句,输出所有节点的编号和节点的类型,并将结果按照节点编号排序。编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的。给定一个表 tree,id 是树节点的编号, p_id 是它父节点的 id。sex 这一列的值是 ENUM 类型,只能从 (‘m’, ‘f’) 中取。提取字段中的一段,从字符串str的第a位开始提取,提取b个字符。

2024-05-05 17:08:30 885 1

原创 MySQL 中 blob 和 text 数据类型详解

本篇文章介绍了 blob 及 text 字段类型相关知识。虽然数据库规范中一般不推荐使用 blob 及 text 类型,但由于一些历史遗留问题或是某些场景下,还是会用到这两类数据类型的。这篇文章仅当做个记录了,使用到的时候可以参考下。

2024-04-21 12:47:38 5883 1

原创 分析SQL中的ON后面AND条件与WHERE后AND的区别及其应用场景

当涉及多表连接时,ON关键字后跟的条件是连接的关键,决定了表间数据如何匹配;WHERE子句则是对整个查询结果进行全局过滤,不影响连接操作本身;在复杂的查询中,合理运用ON和WHERE的组合可以帮助我们精确获取所需的数据集。实践中,ON是用来关联表的,而WHERE是用来筛选行的,这有助于正确构建和优化SQL查询。同时,在使用LEFT JOIN等外连接时,尤其要注意WHERE条件可能会改变连接的外延性质,影响结果集中左表(或右表)的完整性。

2024-04-14 16:56:14 1071

原创 Redis的配置文件详解

②通过修改配置文件设置,找到图示位置,添加密码。注意这里:任何写法都可,不区分大小写。重启Redis测试!

2024-04-06 15:28:22 392

原创 List转Map

1.6、List 转化为Map1.5、 List 转化为Map1.7、List 转化为Map1.2 、List转化为Map1.1、List转化为Map1.3、List转化为Map

2024-03-31 18:03:42 1136

原创 List整理

11.3 判断一个对象集合中 的某个字段是否有重复。判断Person集合中的name属性有没有重复。11.2 使用jdk8的stream判断。

2024-03-24 19:18:16 800

原创 mvcc介绍

既然是基于多版本,即快照读可能读到的并不一定是数据的最新版本,而有可能是之前的历史版本。对于删除的情况,可以认为是update的特殊情况,会将版本链上最新的数据复制一份,然后将其trx_id修改成删除的trx_id,同时在该条记录的头信息(record_header)里的(delete_flag)标记位上写上true,来表示当前记录已经被删除,在查询时按照上面的规则查到对应的记录,如果delete_flag标记位等于true,意味着该条记录已被删除,则不返回数据。----解决的基础隔离级别:可重复读。

2024-03-17 19:00:11 674

原创 反射整理学习

Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查。被private封装的资源只能类内部访问,外部是不行的,但反射能直接操作类私有属性。反射可以在运行时获取一个类的所有信息,(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法。所以先要获取到每一个字节码文件对应的Class类型的对象。

2024-03-08 15:20:45 922

原创 索引的整理

复合索引指的是在表中多个字段上创建一个索引,并且只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。也就是在创建索引时,把使用最频繁的字段放在索引字段列表的最左边,使用次频繁的字段放在索引字段列表的第二位,以此类推。需要注意的是,虽然索引可以提高数据的查询速度,但它会占用一定的磁盘空间,并且在创建和维护索引时,其消耗的时间是随数据量的增加而增加。单列索引指的是在表中单个字段上创建索引,它可以是普通索引、唯一性索引或全文索引,只要保证该索引只对应表中一个字段即可。

2024-03-03 20:52:54 941 1

原创 线程计数器(CountDownLatch)

CountDownLatch也属于共享锁,其内部有一个int类型的属性表示可以同时并发并行的线程的数量。主线程调用await(),等待所有线程执行完毕,也就是计数器值为0,再继续执行主线程后续任务。每个任务执行完成后,调用countDown(),CountDownLatch内部计数器自减。构造CountDownLatch实例,初始化为10,表示有10个任务需要完成。🥩使用场景:等待多个线程全部执行完,再执行某个任务。🥩注意:CountDownLatch只能减不能加。同时等待N个任务执行结束。

2024-02-25 14:17:01 497 1

原创 搞定mysql的 行转列(7种方法) 和 列转行

一、行转列1、使用case…when…then 2、使用SUM(IF()) 生成列3、使用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行4、使用SUM(IF()) 生成列,直接生成汇总结果,不再利用子查询5、使用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total6、动态查询列值不确定的情况7、合并字段显示:group_concat()二、列转行————————————————即将原本同一列下多行的不同内容作为多个字段,输出对应内容

2024-02-01 17:18:00 37069 2

原创 SpringBootAdmin邮件通知

在上一篇中我们学习到了 Admin Service Clustering 分布式缓存配置 ,这一篇我们来学习,客户端离线,出现故障的时候,我们这么能及时知道呢,发现邮件通知也许是最简单的方式了!

2024-01-24 14:50:20 1060 1

原创 何为数据库加锁

数据库加锁: 简单的意思就是对于在执行一个操作(比如修改)时,对这个操作的对象加锁,放置其他操作读取到脏数据或者幽灵数据。或者术语来说就是一种排他锁,当写的时候不允许其他程序写,这样就可以保证数据一致性了事务: 是用户定义的数据库操作系列,这些操作作为一个完整的工作单元执行。一个事务内的所有语句作为一个整体。要么全部执行,要么全部不执行。

2024-01-21 15:32:45 957 1

原创 数据库锁表原因、排查、解决

CDC 全量同步锁表问题是指在使用 CDC 技术进行数据库同步时,为了保证数据的一致性,需要在全量同步阶段对源数据库的表或者整个数据库进行加锁,防止在同步过程中发生数据的变更。当多个事务处理对多个资源同时访问时,若双方已锁定一部分资源但也都需要对方已锁定的资源时,无法在有限的时间内完全获得所需的资源,就会处于无限的等待状态,从而造成其对资源需求的。例如在 MySql 操作一张大表,利用 alter 语句修改或新增字段的时候,恰巧有一个长事务(包括读)在操作此表,会触发修改等待,造成锁表。

2024-01-14 17:42:12 487 1

原创 UNION 和 UNION ALL

UNION和UNION ALL都是 SQL 中用于将多个 SELECT 语句的结果合并成一个结果集的操作符。它们都适用于需要将多个表或查询结果合并在一起的情况。但是它们的行为略有不同。在 SQL 查询中,UNION和UNION ALL都是将多个查询结果集合并在一起的操作符。UNION会去除结果集中的重复行,而UNION ALL则保留所有的行。在使用UNION和UNION ALL时需要注意,两个查询的列数必须相同,并且对应列的数据类型也必须相同。此外,如果需要去重,应该使用UNION;

2024-01-07 18:13:10 1327

原创 SQL之CASE WHEN用法详解

现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。当能耗值小于10时,使用P_LEVEL=0时的P_PRICE的值,能耗值大于10小于30使用P_LEVEL=1时的P_PRICE的值…如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗。如果表达式返回true,则整个函数返回相应result的值,

2024-01-01 15:45:47 26719

原创 Semaphore 详解

可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从停车场出去,显示屏上显示的剩余车辆就会加1,当显示屏上的剩余车位为0时,停车场入口的栏杆就不会再打开,车辆就无法进入停车场了,直到有一辆车从停车场出去为止。每个停车场入口都有一个提示牌,上面显示着停车场的剩余车位还有多少,当剩余车位为0时,不允许车辆进入停车场,直到停车场里面有车离开停车场,这时提示牌上会显示新的剩余车位数。3、每有一辆车驶出停车场后,显示牌的剩余车位数响应的加1。

2023-12-19 13:58:49 912

原创 Linux常用命令大全(摘录整理)

在通常意义上,一个目录也是一个文件。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。的工作方式是这样的,它在一个或多个文件中搜索字符串模板。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;功能是为文件在另外一个位置建立一个同步的链接,当在不同目录需要该问题时,就不需要为每一个目录创建同样的文件,通过。当第二个参数为目录时,可刚多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录中。

2023-12-17 17:22:42 469

原创 java反射

Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。网上搜罗的反射机制使用过程中常用的、重要的一些类及其方法,更多信息和用法,反射原理和源码分析需要近一步的阅读反射相关资料。

2023-12-10 19:49:11 111

原创 [MySQL]日期和时间函数

当time2为一个数字时,代表的是 秒 ,可以为负数。当time2为一个数字时,代表的是秒 ,可以为负数。针对给定年份与所在年份中的天数返回一个日期,即指定年份的第几天。返回与给定日期时间相差INTERVAL时间段的日期时间。返回周几,注意,周1是0,周2是1,…返回周几,注意:周日是1,周一是2,…返回指定日期中特定的部分,type指定返回的值。将时间date以UNIX时间戳的形式返回。将UNIX时间戳的时间转换为普通格式的时间。返回从0000年1月1日起,N天以后的日期。

2023-12-03 21:40:02 258

原创 MybatisBatchUtils功能介绍

一般来说,使用 MyBatis 进行批量操作需要先设置 JDBC 驱动的批量处理模式,然后调用 MyBatis 提供的批量操作 API 执行相应的 SQL 语句。是一个 MyBatis 框架的工具类,主要用于简化 MyBatis 中批量操作的代码编写。该工具类封装了 MyBatis 中的批量操作方法,可以方便地进行批量插入、更新和删除等操作。工具类可以帮助我们简化 MyBatis 中批量操作的代码编写,提高开发效率,减少出错的可能性。工具类则为我们提供了更加便捷的方式,可以帮助我们快速完成批量操作。

2023-11-26 17:59:06 652

原创 Nginx

最近进入了新篇章的学习,Nginx,特写下详细笔记与大家共享。负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2023-11-19 19:47:46 188

原创 索引是什么?如何创建?哪些情况下需要使用?

索引是一种数据结构,它保存了数据列的值和指向它们所在行的指针,以便在查询时快速定位匹配的行。索引可以理解为一本书的目录。当你需要查找一本书中的某一页内容时,你可以先查找目录,找到相关的章节和页码,然后直接翻到对应的页码。在数据库中,索引就是一张包含了列名和对应数据位置的表格。当你查询数据时,系统会先查找索引,然后根据索引指向的位置查找数据。

2023-11-10 15:51:26 2055

原创 groupBy和eq的同时使用问题

【代码】groupBy和eq的同时使用问题。

2023-11-01 16:57:36 135 1

原创 直播间讨论区需要WebSocket,简单了解下

WebSocket​​​​​​​ WebSocket是一种在单个TCP连接上进行全双工通信的协议数据是通过http协议传输的,但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。客户端和服务器都可以随时向互相发送数据,能更好的节省服务器资源和带宽并达到实时通讯的目的。

2023-10-31 09:17:24 768 1

原创 REDIS命令

列表类型是一个有序的字段串列表,内部是使用双向链表实现,所有可以向两端操作元素,获取两端的数据速度快,通过索引到具体的行数比较慢。语法:zadd key [NX|XX] [CH] [INCR] score member [score member …语法:set key value [EX seconds] [PX milliseconds] [NX|XX]nx:如果key不存在则建立,xx:如果key存在则修改其值,也可以直接使用。语法:mset key value [key value …

2023-10-22 16:01:07 356 1

原创 @Component在类上构造器注入无法注入

Component注解是Spring框架提供的一个注解,用于标识一个类为组件,并让Spring自动进行组件扫描和实例化。在类上使用@Component注解时,并不能实现构造器注入。在上述示例中,构造器上的@Autowired注解会告诉Spring框架在实例化MyClass时,自动将一个符合类型的MyDependency对象作为参数传入构造器,实现了构造器注入。如果你希望在类中进行构造器注入,可以使用其他注解来实现,例如@Autowired或@Inject。

2023-10-17 15:08:42 1166

原创 @Async注解

1、定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内)

2023-09-15 17:27:34 940

原创 【无标题】

ArrayList 的特点及优缺点_arraylist好处_not coder的博客-CSDN博客LinkedList 的特点及优缺点_linkedlist的优缺点_not coder的博客-CSDN博客(底层)ArrayList查询快,增删慢;LinkedList增删快,查询慢的原因。两者的区别_linkedlist为什么查询慢,删除快_虚实与的博客-CSDN博客

2023-09-13 14:41:20 109

原创 ​@Cacheable 注解​

这一点应该是很容易理解的,因为缓存不关心方法的执行逻辑,它能确定的是:对于同一个方法,如果参数相同,那么返回结果也是相同的。但是如果参数不同,缓存只能假设结果是不同的,所以对于同一个方法,你的程序运行过程中,使用了多少种参数组合调用过该方法,理论上就会生成多少个缓存的 key(当然,这些组合的参数指的是与生成 key 相关的)。注解在方法上,表示该方法的返回结果是可以缓存的。也就是说,该方法的返回结果会放在缓存中,以便于以后使用相同的参数调用该方法时,会返回缓存中的值,而不会实际执行该方法。

2023-09-08 16:21:17 407

空空如也

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

TA关注的人

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