JAVA
文章平均质量分 54
java_t_t
拿优快云当笔记本
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
文件操作工具类
这是一个Java文件操作工具类,提供文件读写功能。主要特点包括:1) 支持按路径或File对象读取/写入文件;2) 可指定字符编码(默认UTF-8);3) 包含读取classpath资源的方法;4) 使用try-with-resources确保资源释放;5) 空值检查和异常处理。工具类封装了常见的文件操作,简化了文件读写流程,支持文本文件的完整读写操作。原创 2025-10-22 00:25:57 · 171 阅读 · 0 评论 -
ZIP工具类
这篇文章摘要如下: Java ZIP工具类提供了压缩和解压缩的常用方法。主要功能包括:1) 将指定目录下的所有文件压缩为ZIP文件或输出流;2) 支持自定义父路径以确定压缩文件相对路径;3) 解压ZIP文件到指定目录并返回解压文件列表。工具类使用ZipOutputStream/ZipInputStream实现核心功能,处理文件路径时使用Paths.normalize()规范化路径,并通过缓冲流提高IO效率。所有方法都包含异常处理,使用Lombok的@Slf4j记录错误日志。该工具类封装了ZIP操作常见场景,原创 2025-10-21 00:31:00 · 232 阅读 · 0 评论 -
集合工具类
本文介绍了集合操作工具类CollectionUtil,提供了多种集合处理方法。主要功能包括:拆分列表(splitList)、判断集合是否为空(isEmpty)、获取两个集合的差集(complementary)、交集(intersection)、并集(union)、移除空元素(removeNull)以及比较集合元素是否相同(equals)。这些方法通过泛型支持多种数据类型,处理了空集合等边界情况,并采用排序后逐一比较的方式实现集合相等性判断。该工具类简化了常见的集合操作,提高了代码复用性。原创 2025-10-16 00:46:40 · 425 阅读 · 0 评论 -
JSON格式化与结构对比
该JSON工具类提供两个核心功能:1) 格式化JSON字符串为最简结构并标注值类型;2) 比对两个JSON结构差异。采用fastjson解析JSON,支持三种特殊比对规则:null与任何类型相等、空对象互等、空数组互等。主要方法包括format()格式化JSON和compareStruct()比较结构差异,内部通过递归处理JSONObject和JSONArray。格式化时会保留结构框架但移除具体值,仅保留值类型标识;比对功能会输出结构变化(增删改)。原创 2025-07-27 18:17:02 · 372 阅读 · 0 评论 -
MyBatis TypeHandler的编写
本文介绍了MyBatis自定义TypeHandler的实现方法原创 2025-07-06 17:21:59 · 398 阅读 · 0 评论 -
控制台打印带格式内容
本文介绍了如何在控制台中打印带颜色和格式的文字,使用转义符 \033[ 配合参数实现样式设置。样式结束使用 \033[0m 恢复默认格式。文章详细说明了参数的含义,包括字体颜色、背景颜色及其他格式(如粗体、斜体、下划线等)。通过 Java 代码示例,展示了如何定义格式参数枚举类及内容格式化类,并提供了测试代码,验证了在 IDEA 控制台中输出带格式文字的效果。原创 2025-05-11 22:32:10 · 408 阅读 · 0 评论 -
Java获取自身被调用点
打印日志的时候,需要获取是在哪个地方被调用了,把调用点的信息一并打印出来。可以通过获取线程的调用栈,遍历后找到调用点。原创 2024-12-27 00:00:34 · 355 阅读 · 0 评论 -
TreeMap自定义排序
使用自定义排序规则对TreeMap进行实例化。原创 2024-08-07 23:42:58 · 1301 阅读 · 0 评论 -
Java在for循环中修改集合
尽量不要在遍历中修改集合本身(修改集合中的元素的属性没问题),除非你能明确知道该操作导致的后果。如果需要在循环中移除元素,可以使用迭代器iterator。原创 2024-07-21 18:17:32 · 1083 阅读 · 0 评论 -
EasyExcel多次写入数据&多个EasyExcel文件导出到zip压缩文件
EasyExcel多次写入数据&多个EasyExcel文件导出到zip压缩文件原创 2023-08-12 22:46:53 · 1942 阅读 · 0 评论 -
Java执行Python代码的两种方法(Jython与ProcessBuilder)
Java执行python代码有很多种方法,这里介绍两种,Jython和ProcessBuilder,并简要介绍下它们的优缺点。原创 2023-07-02 19:14:26 · 4121 阅读 · 0 评论 -
使用EasyExcel读写Excel文件
使用EasyExcel读写Excel文件原创 2023-07-02 00:00:43 · 3677 阅读 · 1 评论 -
Excel文件导入&导出工具类
之前写过一篇导出Excel文件的通用类的文章,当时只实现了导出数据到Excel的功能,这次在上次的基础上,增加从Excel读取数据到List的功能,依旧使用POI读取Excel文件。原创 2023-07-01 20:22:36 · 1826 阅读 · 0 评论 -
分别使用dom4j和jdk自带的方法解析xml文件
分别使用dom4j和jdk自带的方法解析xml文件。原创 2023-06-24 18:00:45 · 319 阅读 · 0 评论 -
好记性不如烂笔头(2)
记录一些小技巧原创 2023-03-12 22:40:02 · 454 阅读 · 0 评论 -
Java实现Unicode与普通字符的转换
Java实现Unicode与普通字符的转换原创 2022-11-14 00:39:18 · 3584 阅读 · 0 评论 -
控制台打印进度条
控制台打印进度条原创 2022-11-13 22:15:01 · 1137 阅读 · 2 评论 -
apolloconfig分布式部署
apollo、Apollo config、分布式部署、源码原创 2022-09-30 03:01:19 · 1183 阅读 · 0 评论 -
导出Excel文件的通用类
本文记录一种通用的导出Excel文件的通用类原创 2022-07-10 19:40:04 · 324 阅读 · 0 评论 -
Spring Boot连接SQLite数据库
本文记录Spring Boot连接单SQLite数据源和多SQLite数据源的一种配置方式。原创 2022-07-06 23:56:38 · 15200 阅读 · 2 评论 -
List、Tree互转工具类
List、Tree互转工具类原创 2022-03-25 23:37:13 · 1760 阅读 · 2 评论 -
使用jnotify、commons-io监控文件变化
使用JNotify和commons-io监控文件变化原创 2022-03-25 00:03:03 · 2781 阅读 · 0 评论 -
获取树深度
概要:使用BFS(广度优先搜索)、DFS(深度优先搜索)的递归和非递归方式获取树深度。代码:Util类:package com.example.study.util;import org.springframework.util.CollectionUtils;import org.springframework.util.StringUtils;import java.lang.reflect.Field;import java.util.ArrayList;import ja原创 2022-02-27 23:38:08 · 985 阅读 · 0 评论 -
Java诊断工具Arthas的简单使用
Arthas简介:Arthas是Alibaba开源的Java诊断工具。它可以协助解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到J原创 2021-10-18 01:00:07 · 757 阅读 · 0 评论 -
SpringBoot连接Mysql数据库
本文记录Spring Boot连接单mysql数据源和多mysql数据源的一种配置方式。单数据源1.在pom.xml中添加相关依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>原创 2021-09-08 00:59:39 · 1006 阅读 · 0 评论 -
求经过两点的直线的表达式(Leetcode.149)
在刷Leetcode的时候,第149题需要求经过两点的直线的表达式,所以总结一下如何用代码求出经过两点的直线的表达式注:只考虑 x, y 为整数的情况,且不考虑计算中整型溢出的情况求直线表达式需要解决的问题1.求坐标系中经过两点的直线的表达式表达式的形式为:y = a * x + b根据两个点的坐标得到方程式:①. y1 = a * x1 + b ②. y2 = a * x2 + b得出 a 和 b 的表达式为(x1 - x2 不为 0 的情况下):a = (y原创 2021-08-22 00:57:55 · 2519 阅读 · 0 评论 -
Gradle的使用
Gradle的使用什么是Gradle?Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。(摘自百度百科)Gradle相比Maven主要有两点变化: Maven只能全量构建,Gradle支持增量构建,所以Gradle的构建速度快于Maven Maven使用xml进行配原创 2021-08-15 03:50:51 · 805 阅读 · 0 评论 -
Kafka Connect开发
通过开发一个Kafka Connect增加对Kafka Connect的认识关于Kafka Connect:Kafka Connect是生产者、消费者的一种特殊使用场景,一般用于构建数据管道完成数据的导入导出功能。Kafka Connect核心概念(Connector) Source:Source负责导入数据到Kafka Sink:Sink负责从Kafka导出数据 Kafka Connect还有两个重要概念:Task和Worker。Task是Kafka原创 2021-08-15 02:58:49 · 1497 阅读 · 1 评论 -
Maven插件开发
概述:通过开发一个简单的maven插件来更深入的了解mavenmaven:maven是一个包管理和插件调度框架,所有的功能(如编译、打包、发布)都是由插件完成的。maven有30个阶段,这30个阶段(phase)分别归属于3个标准的生命周期,所有的插件都需要绑定到其中一个阶段执行(插件本身可以设置默认阶段,pom.xml中也可以重新绑定插件的阶段,最后是可以在执行mvn命令时绑定插件的阶段)。编译时调用某个阶段,该阶段及在该阶段所属的生命周期前的所有阶段都会被执行,如,执行clean,那么pre原创 2021-07-05 00:23:26 · 646 阅读 · 0 评论 -
Spring Boot映射资源文件
场景:需要通过url访问服务器上的资源,可以通过nginx进行资源映射(见 nginx映射资源文件),也可以通过Spring Boot进行映射。代码:import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.原创 2021-05-13 11:41:28 · 895 阅读 · 1 评论 -
文件分片上传
依赖: <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.11.0</version> <exclusions> ...原创 2021-01-29 14:23:19 · 924 阅读 · 0 评论 -
扁平化部门结构获取上级、下级部门,转换成树形结构
概要:企业微信有获取部门列表的接口,该接口返回的部门列表中,每个部门有一个字段关联其上级部门,很多时候需要根据返回的列表获取某个部门的所有上级部门、子部门,以及转换成树形结构。代码:部门实体类:package com.example.study.entity;import lombok.Data;/** * 部门实体类 */@Datapublic class DepartmentEntity { /** * 部门id */ priv.原创 2021-01-07 17:38:55 · 1360 阅读 · 0 评论 -
Java注解编写
1.引入依赖 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependency> <groupId>org.apache.commons原创 2020-12-28 13:19:35 · 1318 阅读 · 2 评论 -
RocketMQ在Windows下的安装与使用
1、安装与启动1.1.版本:4.7.11.2.系统要求(http://rocketmq.apache.org/docs/quick-start/):1.3.下载(https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip)可以从以下地址下载:https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-al原创 2020-12-08 16:30:34 · 4331 阅读 · 2 评论 -
SpringBoot加载配置源码
我们从启动类打断点进去:public class Application{ public static void main(String[] args) { SpringApplication.run(Application.class, args); }} public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return原创 2020-11-02 19:08:22 · 394 阅读 · 0 评论 -
通过http接口打包下载网络资源
代码:import javax.servlet.http.HttpServletResponse;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLEncoder;import java.util.Map;import java.util.zip.ZipEntry;import ja原创 2020-10-23 16:08:11 · 507 阅读 · 0 评论 -
String在编译时的优化及switch中对String的支持
前提:jdk版本为1.8.0_73java代码:public class test { public static void main(String[] args) throws Exception { String str = "a" + "b"; for (int i = 0; i < 10; i++) { str = str.concat(i + ""); } System.out.prin原创 2020-09-23 18:27:54 · 234 阅读 · 0 评论 -
彻底理解ThreadLocal(看这篇文章就够了)
源码分析为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类ThreadLocalMap(内部类) Thread首先,在Thread类中有一行:/* ThreadLocal values pertaining to this thread. This map is maintained by the ThreadLocal class. */ThreadLocal.ThreadLocalMap threadLocals = null;其中ThreadL转载 2020-09-16 18:01:52 · 859 阅读 · 0 评论 -
Spring Boot中拦截器的编写
步骤:1.实现HandlerInterceptor接口;或继承HandlerInterceptorAdapter类;2.实现WebMvcConfigurer接口,在addInterceptors方法中注册拦截器说明:1.HandlerInterceptorAdapter类实现了AsyncHandlerInterceptor接口,该接口继承自HandlerInterceptor接口,比HandlerInterceptor多了一个afterConcurrentHandlingStarted方法2.方原创 2020-08-27 12:58:39 · 546 阅读 · 0 评论 -
异常的全局处理
Spring Boot中对异常的全局处理步骤:1.在全局异常处理类中加上注解@ControllerAdvice2.在方法上使用@ExceptionHandler注解处理对应的异常3.@ResponseBody可选,使用该注解时,会将返回结果由java对象转为json例:import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.ControllerAdvice;import or.原创 2020-08-27 12:21:48 · 315 阅读 · 0 评论
分享