- 博客(25)
- 收藏
- 关注
原创 Stream流中的Map与flatMap的区别
用于将流中的每个元素通过指定函数转换为另一个元素,生成一个一对一映射的新流。Map的Function返回普通对象,flatMap的Function必须返回Stream对象。数据类型转换(String→Integer)、属性提取(对象→ID)、简单计算(数值→平方值)用于将每个元素转换为流后合并所有流,形成一对多映射的扁平化结果。Map保持原始流元素数量不变,flatMap可能改变元素数量(如拆分为多个子流后合并)Map适合单一元素转换,flatMap适合处理嵌套集合(如List<List>)
2025-08-26 19:38:02
571
原创 Hutool ImgUtil
提供了丰富的图像处理功能,通过简洁的 API 即可实现裁剪、水印、去背景等操作。通过封装 JDK 原生图像处理 API,大幅简化了常见的图像处理操作。方法支持在图片上添加文字水印,可自定义颜色、字体和位置。对象进行处理,而非必须使用文件路径。方法可以快速裁剪图片,支持指定裁剪区域坐标和大小。方法可以在图片上叠加另一张图片作为水印。Hutool 5.8.0+ 版本支持通过。方法支持按比例或指定尺寸缩放图片。方法可以旋转图片指定角度。方法可将图片转为灰度图。
2025-08-25 16:11:25
185
原创 Java 泛型 T、E、K、V、?、S、U、V等
Java 泛型中的类型参数通常使用单个大写字母表示,每种字母在不同场景下有约定俗成的含义。最常用的泛型类型参数,表示一个具体的 Java 类型。适用于大多数泛型场景,特别是当类型不确定但需要明确指定时。Java 泛型在编译时会进行类型擦除,运行时无法获取泛型的具体类型信息。通常用于集合框架中,表示集合中的元素类型。当需要多个类型参数时,按字母顺序扩展使用。常见于需要多个泛型参数的场景。专门用于映射关系的键值对场景,K 表示键的类型,V 表示值的类型。表示未知类型,常用于泛型方法的参数或变量声明。
2025-08-21 16:35:24
171
原创 MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 在处理大数据量查询时,性能瓶颈通常出现在数据库连接、网络传输、内存消耗和结果集处理等方面。常见问题包括全表扫描、未合理使用分页、ORM 映射开销过大等。MyBatis Plus 内置分页插件(),避免一次性加载全部数据。在内存充足的情况下,先通过。结合 MyBatis 的。分页查询 ID,再通过。添加必要的索引,避免。
2025-08-21 16:25:28
390
原创 JAVA IO和NIO的主要区别
IO:简单易用,适合同步阻塞操作。NIO:高性能、非阻塞,适合高并发网络编程。选择依据:根据项目需求权衡开发效率和性能要求。
2025-08-21 16:02:54
278
原创 SQL 优化之 explain 超详细讲解
EXPLAIN 是 SQL 优化中用于分析查询执行计划的工具,能够展示 MySQL 如何执行查询语句。通过 EXPLAIN 输出结果,可以识别查询性能瓶颈,如表扫描、索引使用情况、连接类型等。EXPLAIN 适用于 SELECT、DELETE、INSERT、UPDATE 和 REPLACE 语句。
2025-08-20 13:53:57
1138
原创 mysql中查询没有主键的表
数据库来获取没有主键的表信息。数据库来获取没有主键的表信息。表,筛选出没有主键约束的基表。排除系统数据库中的表,只关注用户创建的表。表,筛选出没有主键约束的基表。排除系统数据库中的表,只关注用户创建的表。在MySQL中,可以通过查询。在MySQL中,可以通过查询。
2025-08-19 16:06:59
145
原创 如何用SQL轻松拆分地址中的省市区?
实际应用中建议先对地址数据进行标准化预处理,建立行政区划字典表辅助解析。不同数据库系统的字符串函数可能略有差异,需根据具体DBMS调整语法。
2025-08-18 14:17:30
255
原创 MyBatis <choose> 动态SQL
是 MyBatis 动态 SQL 中的一个标签,用于实现类似 Java 中的。配合使用,根据条件选择不同的 SQL 片段执行。标签会检查所有满足条件的片段并拼接,而。只会选择第一个满足条件的片段执行。
2025-08-15 16:34:58
432
原创 Linux安装Nginx并配置转发
如果看到"configuration file /etc/nginx/nginx.conf test is successful"提示,说明配置无误。如果看到"configuration file /etc/nginx/nginx.conf test is successful"提示,说明配置无误。在大多数Linux发行版中,可以通过包管理器直接安装Nginx。安装完成后,默认配置文件通常位于。
2025-08-14 21:56:32
336
原创 SQL子查询全面解析
子查询是嵌套在另一个SQL查询(主查询)中的查询,通常出现在SELECT、FROM、WHERE或HAVING子句中。子查询可以返回单个值、多行或多列数据,用于为主查询提供中间结果或过滤条件。:返回单列多行数据,常用IN、ANY/SOME、ALL等运算符。通过灵活选择子查询或JOIN,可以平衡代码可读性与执行效率。:返回单个值的子查询,常用于WHERE或SELECT子句。:返回多行多列数据,通常作为临时表在FROM子句中使用。:子查询依赖主查询的当前行,需多次执行。:子查询独立于主查询,仅执行一次。
2025-08-14 21:20:31
231
原创 SQL 窗口函数简介
SQL 窗口函数(Window Functions)是一种在结果集的某个窗口(即行的子集)上执行计算的函数。与聚合函数不同,窗口函数不会将多行合并为一行,而是保留原始行的同时计算每行的结果。:将数据分为多个分区,窗口函数在每个分区内独立计算。SELECTsubject,score,FROMORDER BY:在窗口内对行进行排序,通常用于排名或累积计算。SELECTamount,FROMROWS/RANGE:定义窗口的物理或逻辑范围,如。
2025-08-14 21:16:26
350
原创 查询Java程序日志的方法
在Linux系统中查询Java程序日志,通常需要根据日志文件的存储位置和Java应用的配置进行操作。如果Java应用作为系统服务运行,可以使用。修改后需要重启应用使配置生效。参数可以实时跟踪日志更新。
2025-08-14 21:13:02
248
原创 C盘清理技巧
修改默认保存路径(如微信、QQ等软件的缓存目录),通过软件设置调整存储位置。使用磁盘清理工具(搜索“磁盘清理”),勾选“临时文件”“回收站”“下载内容”等选项进行清理。设置存储感知功能(Windows 10/11),自动清理临时文件。使用工具如WizTree或TreeSize,扫描C盘大文件分布,针对性删除或转移日志、备份等非必要文件。进入“设置”>“应用”>“应用和功能”,按大小排序,卸载长期未使用的软件。对于内存充足的设备,可在“系统属性”>“高级”>“性能设置”中,将虚拟内存转移到其他分区或关闭。
2025-08-14 20:55:41
179
原创 JDK下载安装配置
选择适合操作系统的版本(Windows、macOS 或 Linux)。推荐下载 LTS(长期支持)版本,如 JDK 11 或 JDK 17。右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”中新建变量。安装文件,按照向导完成安装。文件,拖拽 JDK 到应用程序文件夹。若显示版本信息,则安装配置成功。,值为 JDK 安装路径(如。
2025-08-14 20:49:30
251
原创 mysql安装
运行下载的MySQL Installer,选择“Full”或“Custom”安装类型。勾选MySQL Server及相关工具(如MySQL Workbench)。按向导提示完成安装,过程中会提示设置root用户密码。访问MySQL官方网站(https://dev.mysql.com/downloads/),选择适合操作系统的版本。Windows用户可选择MySQL Installer,Linux用户可选择对应发行版的包或源码。输入密码后,若显示MySQL命令行界面即表示安装成功。
2025-08-14 20:48:00
313
原创 java 读取excel文件为 base64
Apache POI 是一个流行的 Java 库,用于操作 Microsoft Office 格式文件(如 Excel)。以下方法将 Excel 文件读取为字节数组,再转换为 Base64 字符串。若需处理大型 Excel 文件,可以使用阿里开源的 EasyExcel,其内存占用更低。对于超大文件,建议分块读取或使用流式 API(如 EasyExcel 的。确保文件路径正确,且 Excel 未被其他进程占用。,检查文件是否损坏。
2025-08-13 17:25:06
413
原创 git使用
频繁提交小的变更,保持提交信息的清晰和描述性。使用分支进行功能开发和 bug 修复。定期从远程仓库拉取更新以避免冲突。Git 是一个分布式版本控制系统,用于跟踪文件的变更历史。每个开发者都可以拥有完整的代码仓库副本,支持离线工作。Linux 用户可以通过包管理器安装,例如 Ubuntu 使用。设置全局用户名和邮箱,这些信息会出现在提交记录中。Mac 用户可以通过 Homebrew 安装。文件,列出需要忽略的文件和目录。Windows 用户可以从。
2025-08-13 16:55:14
269
原创 冒泡排序的Java实现
冒泡排序是一种简单的排序算法,通过重复遍历待排序的列表,比较相邻元素并交换位置,将较大的元素逐步“冒泡”到列表末尾。冒泡排序适合小规模数据或部分有序的数据集,对于大规模数据效率较低。实际应用中更推荐使用快速排序或归并排序等高效算法。
2025-08-13 16:49:20
159
原创 Java Stream 数据处理方法
Java Stream 是 Java 8 引入的一种高效处理集合数据的 API,支持函数式编程风格。LongStream 和 DoubleStream 也有类似方法。
2025-08-13 16:39:50
237
原创 解决 ‘Invalid use of NULL value‘ 问题
修改表结构,将不允许NULL的列设置为NOT NULL。检查应用程序代码,确保在向数据库插入或更新数据前,所有不允许NULL的字段都被正确赋值。为不允许NULL的列设置默认值,避免插入操作时未提供值导致错误。例如,设置整数列的默认值为0,字符串列的默认值为空字符串。在查询或更新数据时,使用COALESCE或IFNULL函数处理可能的NULL值,将其替换为默认值。更新数据时,避免将不允许NULL的列设置为NULL。在某些情况下,可以使用触发器在插入或更新前自动处理NULL值,将其替换为默认值或其他有效值。
2025-08-13 15:37:10
335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人