自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java steam map失效

Java 8引入了一种新的编程范式——Stream API,它使得对集合的操作变得更加方便和优雅。然而,在实际项目中,有时我们会遇到map()方法失效的情况,这个问题不仅仅是API的使用问题,有时也涉及到Java语言的特性和编程思维。在本文中,我们将探讨这一问题并提供一些例子,帮助你更好地理解Stream API的使用。Java Stream API允许我们以功能化的方式对集合中的元素进行处理,它支持链式操作。下面是一个Stream的简单使用示例,我们将创建一个整数数组,并使用方法将其转换为平方值数组。

2025-06-02 00:07:56 310

原创 Java 中 JSON 字段不固定怎么搞序列化?用好这两个注解就够了!

像开了一家灵活应对一切需求的「杂货铺」🧃🧂想象你是个 JSON 杂货铺老板,门口写着招牌:“你有啥,我都能装;你要啥,我都能配。“老板,有没有草莓味的牙膏?“能不能加点冰块到辣酱里?这些你事先没在货架上准备的“临时需求”,你也得接单,对吧?

2025-05-25 21:29:00 668

原创 EasyExcel动态表头

如果您的问题涉及到读取动态表头的信息,请参照另一段知识中关于读取表头数据的说明,那包括了如何通过监听器invokeHead(Map<Integer, ReadCellData<?动态表头的需求通常来源于希望根据用户的选择或者运行时的数据情况自动生成Excel的表头,这在导出具有可配置列的报表时非常有用。分离表头与数据:将表头的写入与数据的写入分开处理,使得在需要修改表头时无需更改数据处理逻辑,增强了代码的灵活性和可维护性。

2025-05-18 20:42:55 600

原创 Spring Boot 断言:让你的代码在上线前就通过“体检”!

想象一下,你在做菜。你心里想的是:“我加盐的时候,盐的量一定要是 5 克,不能多也不能少!🧂” 如果盐的量不是 5 克,那这道菜可能就毁了。😫断言,就像你做菜时的这个“心里想的”。它是一种检查机制,用来确保你的代码在运行过程中,某些条件必须为真。✅ 如果条件不为真,就说明代码出了问题,应该立即停止运行,并告诉你哪里出错了。🚨更正式的说法:断言是一种编程技巧,用于在代码中插入一些检查点,验证程序的状态是否符合预期。

2025-05-08 17:58:38 719

原创 枚举类如何使用

默认为private static final(不能再写)成员属性必须声明为private final构造器私有化,可不写private扩展方法根据需求可以写,调用方式:类名.枚举name.方法名()toString()方法被Enum抽象类重写了,返回值是枚举值的name–根据需要可以重写enum关键字创建枚举类,获取枚举值的遍历方式: 方式1:遍历:类名.class.getEnumConstants() 方式2:遍历:类名.values()方式二:JDK5.0以后,可以使用enum关键字定义枚举类。

2025-04-28 08:58:16 269

原创 Java中的本地缓存:4种实现方式

今天我们一起探索了Java本地缓存的多种实现方式,从手写缓存到Guava Cache、Caffeine、Ehcache和JetCache。每种方式都有自己的特点和适用场景。

2025-04-20 20:40:18 764

原创 MySQL 用 limit 影响性能的优化方案

如果我们的表非常大,或者数据分布不均匀,我们可以尝试使用分区表,也就是将一张大表分成多个小表,并按照某个字段或者范围进行划分。如果我们不能使用索引覆盖扫描,或者查询字段较多,我们可以尝试使用子查询,也就是先用一个子查询找出我们需要的记录的 id 值,然后再用一个主查询根据 id 值获取其他字段。如果我们只需要查询部分字段,而不是所有字段,我们可以尝试使用索引覆盖扫描,也就是让查询所需的所有字段都在索引中,这样就不需要再访问数据页,减少了随机 I/O 操作。

2025-04-13 22:14:47 345

原创 主流程发起,去除子流程的时长计算问题

有三个流程,流程1.2.3,流程2.3是流程1的子流程,若在流程1的过程中发起流程2.3,计算流程1的时长要排除流程2.3的时间,流程2.3之间可能是包含、交集、无交集三种。

2025-04-06 22:04:27 650

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

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

2025-03-30 21:56:35 610

原创 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 1576

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

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

2025-03-09 20:50:12 485

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

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

2025-03-02 18:50:52 436

原创 了解状态机

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

2025-02-23 20:20:08 589

原创 DeepSeek接口调用

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

2025-02-11 10:02:45 2720

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

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

2025-01-19 22:05:27 2050 1

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

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

2025-01-11 17:22:36 504

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

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

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

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

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

2024-12-29 21:44:54 419

原创 Mysql之主从复制

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

2024-12-22 20:13:56 613

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

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

2024-12-15 21:32:38 3736

原创 MySQL 函数

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

2024-12-08 19:06:16 719

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

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

2024-12-01 20:27:22 675

原创 MySQL 中的锁

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

2024-11-24 22:35:07 856

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

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

2024-11-17 21:59:30 2159

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

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

2024-11-10 22:19:43 1101

原创 Map 不常用方法介绍

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

2024-11-03 19:18:58 443

原创 MySQL关于DAYOFWEEK和WEEKDAY说明

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

2024-10-27 19:29:21 417

原创 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 583

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

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

2024-10-11 17:28:30 1740

原创 Java8后新特性介绍

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

2024-09-29 10:09:48 861

原创 Activity工作流入门

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

2024-09-22 20:22:33 1907

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

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

2024-09-15 20:52:49 2676

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

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

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

原创 Host Windows 配置

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

2024-08-27 15:26:48 1369

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

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

2024-08-25 19:22:53 999

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

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

2024-08-18 11:33:52 2314

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

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

2024-08-11 16:54:26 2145

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

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

2024-08-02 14:13:43 978

原创 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 4677

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

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

2024-04-21 22:03:15 942

空空如也

空空如也

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

TA关注的人

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