自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java List 集合取交集、并集、差集、补集

本文介绍了Java中List集合的交集、并集、差集和补集操作的实现方法,包括传统的retainAll、addAll方法,以及现代的Stream API和Apache Commons Collections库。这些方法在实际开发中非常有用,尤其是在处理大量数据集合时,能够显著提高代码效率和可读性。希望本文能帮助您更好地理解和使用Java集合操作,提升开发效率!

2025-03-30 21:56:35 365

原创 JAVA:使用 WebView 实现桌面程序的技术指南

在本博客中,我们介绍了如何在 JavaFX 中使用WebView加载网页,并实现 Java 与 JavaScript 之间的交互。在 Java 中嵌入 WebView 并加载网页Java 调用 JavaScript 代码JavaScript 调用 Java 方法将 Java WebView 应用打包成.exe通过 WebView,可以轻松地在 Java 桌面应用中嵌入 Web 技术,从而结合 Web 和 Java 的优势来开发强大的桌面应用。

2025-03-16 20:05:45 716

原创 ClassUtil:Hutool库中反射操作的高效利器

ClassUtil 是 Hutool 库中一个非常实用的工具类,它通过封装 Java 的反射机制,使得开发者能够更加方便地进行类和对象的操作。无论是用于框架开发还是通用工具开发,ClassUtil 都能显著提高开发效率并减少代码冗余。对于 Java 开发者来说,掌握 ClassUtil 的使用无疑是一个提升生产力的重要手段。

2025-03-09 20:50:12 440

原创 ETL-kettle数据转换使用详解

并点击执行按钮,会自动在MySQL数据库中创建该表。可以去数据库验证下。数据库连接这里 点击新建连接,配置数据库连接信息,点击测试连接,看是否成功,如果报错,看是否世缺少jdbc的驱动,去MySQL官网下载对应的驱动即可。双击表输入,文件选择源文件的位置,然后点击增加,在点击【工作表】,获取工作表名称,把标签移到右边。输入目标表的名称为:user,后续Kettle将在MySQL中创建一张名为 user 的表格。点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句。

2025-03-02 18:50:52 370

原创 了解状态机

状态机(State Machine)是一种数学模型,用于描述系统或程序在不同状态之间转换的行为。它由一组状态、转移条件和动作组成。状态机可以被看作是一个抽象的机器,它可以处于不同的状态,并根据输入条件执行相应的动作来改变状态。状态表示了系统或程序所处的特定情况或阶段,而转移条件决定了在何种条件下从一个状态转移到另一个状态,动作则表示在状态转移时要执行的操作。总之,使用状态机需要注意清晰定义状态和转换条件、处理错误情况、考虑复杂性和可测试性,并保持系统的可扩展性和可维护性。

2025-02-23 20:20:08 513

原创 DeepSeek接口调用

整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。

2025-02-11 10:02:45 2151

原创 Java——Stream流的peek方法详解

peek()是一个中间操作,它允许我们在流的每个元素上执行一个操作,但并不会改变流中的元素或中断流的处理。常用作调试工具,用来在流的各个操作步骤中查看流中的数据。它接收一个Consumer函数作为参数,Consumer函数可以对每个流中的元素执行某些动作。peek()不会消耗流,只是执行一个旁路行为。因为是中间操作,它不会触发终端操作,因此在调用完peek()后,还需要调用诸如forEach()、collect()这类终端操作来触发流的处理。

2025-01-19 22:05:27 1688

原创 Redis 的6种回收策略(淘汰策略)详解

在Redis中,当内存使用达到上限时,为了保持服务的稳定性和响应速度,Redis提供了多种数据回收(淘汰)策略,以便在必要时释放内存空间。本文将详细介绍Redis的六种主要淘汰策略。

2025-01-11 17:22:36 456

原创 使用YApi平台来管理接口

YAPI是一个功能强大、易于使用的接口管理平台,它提供了完整的接口管理解决方案,包括接口的创建、调试、测试、文档生成等功能。通过Docker容器化技术,YAPI可以方便地在多种操作系统上部署和运行,为团队协作和项目开发提供了强大的支持。无论是个人开发者还是大型团队,都可以借助YAPI提升工作效率并优化API开发流程。

2025-01-05 21:04:40 291 1

原创 工作流并行网关退回思路

处于并行网关内回退至网关外节点(如2.1回退到1),需考虑2.2是否已经完成,若已完成则不用管,若未完成,则需将2.2任务删除,否则会出现两个不同的退回信息。处于并行网关外回退至网关内节点(如3回退到2.1),需将2.2也回退,不然2.1通过后3不会创建新任务。在设计工作流时遇到并行的流程,会出现并行流程的退回,这里记录下想到的解决思路,后续问题会记录在这里。

2024-12-29 21:44:54 348

原创 Mysql之主从复制

MySQL的主从复制(Master-SlaveReplication)是一种数据复制解决方案,将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而是的从库和主库的数据保存同步。MySQL支持将数据从一个MySQL服务器(主服务器)复制到一个或多个其他MySQL服务器(从服务器),从库同时也可以作为其他从服务器的主库,实现链状复制。主库出现问题,可以快速切换到从库提供服务;实现读写分离,降低主库的访问压力;

2024-12-22 20:13:56 596

原创 Java中BigDecimal比较大小的方法

在Java中,BigDecimal类提供了三种比较大小的方法,分别是​​compareTo()​​、​​equals()​​和​​compareTo()​​。在调用 ​​Collections.sort()​​ 方法时,会自动调用 ​​Person​​ 类中的 ​​compareTo()​​ 方法进行排序。在上面的例子中,我们根据 ​​age​​ 属性的大小来比较两个 ​​Person​​ 对象。在Java中,​​compareTo()​​​ 是 ​​Comparable​​​ 接口中定义的一个方法。

2024-12-15 21:32:38 2813

原创 MySQL 函数

MySQL 函数是服务器端定义的程序,可以接收输入参数,进行处理后返回一个结果值。函数的主要特点是可以在 SQL 语句中直接调用,通常用于计算、数据转换或返回某种特定的结果。与存储过程不同,函数必须返回一个值,并且可以在 SQL 语句的 SELECT 列表、WHERE 子句、ORDER BY 子句等位置使用。函数的特点单一结果:函数总是返回一个单一的值,可以是标量(如整数、字符串)或复杂数据类型(如日期、JSON)。可嵌套调用:函数可以嵌套调用,允许在一个函数内部调用其他函数。

2024-12-08 19:06:16 710

原创 MySql视图创建及使用详解

视图是一个虚拟的表,它是基于一个或多个基本表或其他视图的查询结果集。视图本身不存储数据,而是通过执行查询来动态生成数据。用户可以像操作普通表一样使用视图进行查询、更新和管理。视图本身并不占用物理存储空间,它仅仅是一个查询的逻辑表示,物理上它依赖于基础表中的数据。

2024-12-01 20:27:22 570

原创 MySQL 中的锁

在 MySQL 数据库的复杂世界里,锁是确保数据一致性、完整性以及并发控制的关键机制。无论是简单的小型应用还是复杂的企业级系统,深入理解MySQL 中的锁对于优化数据库性能、避免数据冲突和错误都具有至关重要的意义。本文将带领读者深入探讨 MySQL中锁的类型、特性、应用场景以及常见问题与优化策略。MySQL 中的锁机制是数据库管理的重要组成部分,它在维护数据一致性、实现事务并发控制和优化数据库性能方面发挥着不可替代的作用。

2024-11-24 22:35:07 837

原创 解决IDEA报包不存在,但实际存在的问题

最近在把一个亿老项目交割给同事,同事在导入项目运行时遇到IDEA报包不存在,但实际存在的问题,最终通过以下方式解决。

2024-11-17 21:59:30 1828

原创 ​详解Spring Boot 启动时执行特定代码逻辑实现方案

我们经常需要在项目启动时执行一些初始化逻辑,比如加载缓存、连接外部系统、初始化配置信息等。提供了多种实现方式,允许我们在应用启动的不同阶段插入代码逻辑。本文将结合启动过程详细介绍这些方式,并说明适用的场景及实现示例。实现方式触发时机适用场景应用启动完成后需要执行启动参数相关逻辑应用启动完成后更方便处理复杂启动参数Bean 初始化完成后Bean 的初始化逻辑特定事件触发时监听应用启动或关闭的事件特定事件触发时使用注解简化事件监听Bean 初始化前后增强 Bean 的初始化过程。

2024-11-10 22:19:43 1055

原创 Map 不常用方法介绍

这个方法在某些场景中挺好用的,代码简洁易懂,例如:我们有1个List,要统计List中每个元素出现的次数。我们要实现的逻辑是,遍历List中的每个元素,如果这个元素在Map中存在,Map中的值+1;看名字就知道是compute方法衍生出来的方法,这个方法只在key不存在的时候,执行computer计算,如果说key对应的value存在,就直接返回这个value。这个是computeIfAbsent的姊妹方法,区别在于,这个方法是只有key存在的时候,才去执行computer计算和值的更新。

2024-11-03 19:18:58 436

原创 MySQL关于DAYOFWEEK和WEEKDAY说明

DAYOFWEEK和WEEKDAY均是MySQL中的日期实际函数,用于获取当前日期是星期几,但是二者存在差别。但是无论用哪一个函数,都不符合一个我国星期一为一周的第一天的基本概念。MySQL中关于DAYOFWEEK和WEEKDAY。

2024-10-27 19:29:21 371

原创 idea切换Git分支时保存未提交的文件

假设有一天,你正在开发,本地已经在Feature_A上修改了几个文件,但是功能还没有完全开发完成,你不想commit,此时测试跟你说在现在的一个测试分支Test_B上有1个Bug,希望你去修复。不提交Feature_A上的文件,直接切换到Test_B修复Bug,这样会把Feature_A里面修改的文件带到Test_B里面去。切换到TestB之后,你会发现你在FeatureA中的修改并没有带到TestB里面来,你可以放心在TestB上修改。提交Feature_A上的文件,然后切换到Test_B修复Bug。

2024-10-20 20:41:26 525

原创 MySQL 修改 数据库中的唯一键(UNIQUE KEY)

在 MySQL 数据库中,唯一键(UNIQUE KEY)用于确保表中的一列或多列组合的值是唯一的,从而防止数据重复。如果你想要更改唯一键的列或名称,你需要先删除现有的唯一键,然后添加一个新的唯一键。如果你想要删除现有的唯一键,你需要知道唯一键的名称(在创建唯一键时,如果没有指定名称,MySQL 会自动生成一个名称)。如果唯一键依赖于列名或数据类型,并且你需要更改这些,你需要先删除唯一键,进行所需的列更改,然后重新添加唯一键。注意:在删除和重新添加唯一键之前,请确保没有违反唯一性约束的数据存在。

2024-10-11 17:28:30 1437

原创 Java8后新特性介绍

在Java 16以前,当我们使用instanceof来检查一个对象是否是某个类型的实例时,如果检查成功,还得显式地将这个对象转型为对应类型,然后才能调用这个类型的方法或访问它的字段。在这个例子中,我们首先检查obj对象是否是String类型的实例,然后将obj对象转型为String类型,并将结果赋值给str变量,最后调用str变量的length()方法。这个方法接收一个指定条件,它可以从一个有序的Stream中取出满足条件的所有元素,一旦遇到不满足条件的元素,就会停止处理后续元素。其实这个方法等价于!

2024-09-29 10:09:48 850

原创 Activity工作流入门

工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。通俗来讲,就是业务上一个完整的审批流程。例如员工的请假,出差,外出采购,合同审核等等,这些过程,都是一个工作流。activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN进行定义,业务流程按照预先定义的流程进行执行。

2024-09-22 20:22:33 1619

原创 java开发工具:敏感词过滤工具sensitive-word详解

sensitive-word工具包,用于文本敏感词过滤,提供多种匹配算法,支持自定义词库和替换策略,适用于隐私保护和内容审核。文章详细讲解了工具包的引入、配置、自定义方法以及如何在项目中使用和测试。

2024-09-15 20:52:49 2366

原创 使用 Spring Boot + Geodesy 实现地理空间高精度坐标处理及多样化的距离计算功能

之前我们计算地理空间点位之间的距离等操作,是使用mysql自带的函数进行处理,这样的话需要每个操作都要单独编写一个sql语句,非常的麻烦并且时间查询较慢,效率比较低,今天我们使用 Spring Boot + Geodesy 实现地理空间高精度坐标处理及多样化的距离计算功能,更加方便快捷。mysql中point的使用Geodesy 是一个专注于地理空间计算的强大框架。它具有以下突出特性:1.高精度坐标处理:能够精确处理和转换不同的地理坐标系统,确保坐标数据的准确性和一致性。

2024-09-06 14:49:50 10708 1

原创 Host Windows 配置

Hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,如果发现是被屏蔽的IP或域名,就会禁止打开此网页。

2024-08-27 15:26:48 1141

原创 解决Stream Collectors.toMap 当value为null时报空指针问题

Collectors.toMap 最终会调用 Map 的 merge 方法,这里会对value进行判空,如果为空,则抛出空指针异常。

2024-08-25 19:22:53 870

原创 windows下TortoiseSVN切换账号的方法

在项目开始初期的时候大家会使用一个默认账号,后面会根据需要给每个人分配各自的个人账号,这个时候就需要重登陆新的svn账号,下面就是讲解下怎样在windows下修改登录TortoiseSVN的账号。

2024-08-18 11:33:52 1916

原创 ideal插件下载(以阿里规约为例)

想要在ideal里下载插件,不只在设置,插件里下载,如果ideal没网的情况下,可以通过官网下载所需插件,然后在拷贝到的电脑中,实现跟设置下载一样的功能。

2024-08-11 16:54:26 1855

原创 认识 k8s、k8s 架构、核心概念点介绍

Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌。谷歌早在十几年之前就对其应用,通过容器方式进行部署。

2024-08-02 14:13:43 954

原创 Kettle安装与使用

Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction,后来Kettle重命名为Pentaho Data Integration。它由Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。Kettle是一个实现ETL开发的一款开发工具,Spoon是Kettle工具提供的图形化界面。

2024-05-19 21:18:10 4479

原创 MySql对于时间段交集的处理和通用实现方式(MyBatis-Plus)

一般传统时间筛选是在[ 开始时间 → 结束时间 ]这个区间内的子集,也就是全包含查询方式,这种只会筛选一种情况。如果场景需要是开展一个活动,需要活动时间检索应该但凡包含就返回,也就是需要查询这个时间段有涉及的都需要筛选出来,即返回产生交集的数据。

2024-04-21 22:03:15 911

原创 DataChangeRecorderInnerInterceptorde简单了解

前言今天遇到一个需求,是想要保存一下用户操作数据的记录,因为使用的是mybatisplus,可以使用它的DataChangeRecorderInnerInterceptor(数据变动记录插件)来实现这个功能,通过查找资料,发现网上相关的资料不是很多,官方文档也只有大段代码没有详细的使用过程,所以先对DataChangeRecorderInnerInterceptorde有个初步了解,后续继续深入学习一下这个插件。DataChangeRecorderInnerInterceptorde的官方文档地址如下:

2024-04-14 21:32:14 2570

原创 MySQL的sql_mode模式简介

今天同事使用数据库时报错,排查问题时发现配置文件里的sql_mode配置被人注释了,所以通过查询资料对这个配置进行了下了解。mysql为了支持在不同的环境下运行,允许我们给它设置不同的运行模式(sql_mode)。不同的运行模式,mysql处理我们的sql语句也不相同(mysql提供了18个运行模式,它们可任意组合使用)。sql model 常用来解决下面几类问题通过设置sql mode, 可以完成不同严格程度的数据校验,有效地保障数据准备性。

2024-04-07 17:53:13 2510

原创 Windows MySQL通过data 文件夹恢复数据

在MySql数据库中,为了备份和恢复数据,通常会使用mysqldump工具来导出和导入数据。但是,如果数据库非常大,name导出和导入数据可能会需要很长时间。这时,一种更快速的备份和恢复数据的方式就是直接复制mysql的data文件夹。什么是mysql的data文件夹MySQL的Data文件夹是存储数据库数据的文件夹。它包含了数据库的表、索引、视图等对象的数据文件。在文件系统中,每个数据库都对应一个文件夹,文件夹的名称就是数据库的名称。

2024-03-29 15:15:04 2188

原创 【Redis】在Java中操作Redis

今天简单学习一下怎样在java springboot中使用redis进行数据的操作,我们将使用SpringDataRedis,它 是Spring Boot 集成的Redis服务。Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在 Spring 项目中,可以使用Spring Data Redis来简化 Redis 操作。

2024-03-24 20:09:51 508

原创 MYSQL报 - Lock wait timeout exceeded; try restarting transaction

今天在使用数据库编辑数据时,页面突然卡主,退出程序后重新编辑,发现报错,1205 - Lock wait timeout exceeded;try restarting transaction(如下图),正巧在和同事开会,他正好遇到这个问题,为此专门记录下怎么解决。最终问题完美解决,所以要多跟同事交流学习,有些问题自己没遇到,别人可能已经遇到过了,可以减少自己查询问题的时间,提高效率,也让自己学到了新的知识。

2024-03-17 20:15:28 2474

原创 什么是线程池,线程池的概念、优点、缺点,如何使用线程池,最大线程池怎么定义?

线程池的优点包括重用线程、控制并发度、提供线程管理和监控等。通过适当地配置线程池的大小和任务队列的容量,可以充分利用系统资源,提高程序的性能和响应速度。同时,线程池可以避免线程创建和销毁的开销,减少了资源的浪费。线程池的基本概念是,在应用程序启动时创建一定数量的线程,并将它们保存在线程池中。当需要执行任务时,从线程池中获取一个空闲的线程,将任务分配给该线程执行。线程池的设计思想是为了避免频繁地创建和销毁线程的开销,以及控制并发执行的线程数量,从而提高系统的性能和资源利用率。

2024-03-10 18:35:12 27779 6

原创 CommandLineRunner的使用

定义一个类实现CommandLineRunner接口,模拟启动项目时的预加载处理。此时注掉前面两个实现类的@Order()注解。

2024-03-03 21:58:15 771

原创 Java客户端调用Websocket服务端(Springboot)

今天使用Java客户端调用Websocket服务端。在项目启动时,开启Websocket服务。

2024-02-25 21:11:04 2003

空空如也

空空如也

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

TA关注的人

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