
JAVA
文章平均质量分 55
java_t_t
拿CSDN当笔记本
展开
-
控制台打印带格式内容
本文介绍了如何在控制台中打印带颜色和格式的文字,使用转义符 \033[ 配合参数实现样式设置。样式结束使用 \033[0m 恢复默认格式。文章详细说明了参数的含义,包括字体颜色、背景颜色及其他格式(如粗体、斜体、下划线等)。通过 Java 代码示例,展示了如何定义格式参数枚举类及内容格式化类,并提供了测试代码,验证了在 IDEA 控制台中输出带格式文字的效果。原创 2025-05-11 22:32:10 · 287 阅读 · 0 评论 -
Java获取自身被调用点
打印日志的时候,需要获取是在哪个地方被调用了,把调用点的信息一并打印出来。可以通过获取线程的调用栈,遍历后找到调用点。原创 2024-12-27 00:00:34 · 266 阅读 · 0 评论 -
TreeMap自定义排序
使用自定义排序规则对TreeMap进行实例化。原创 2024-08-07 23:42:58 · 1030 阅读 · 0 评论 -
Java在for循环中修改集合
尽量不要在遍历中修改集合本身(修改集合中的元素的属性没问题),除非你能明确知道该操作导致的后果。如果需要在循环中移除元素,可以使用迭代器iterator。原创 2024-07-21 18:17:32 · 1010 阅读 · 0 评论 -
EasyExcel多次写入数据&多个EasyExcel文件导出到zip压缩文件
EasyExcel多次写入数据&多个EasyExcel文件导出到zip压缩文件原创 2023-08-12 22:46:53 · 1809 阅读 · 0 评论 -
Java执行Python代码的两种方法(Jython与ProcessBuilder)
Java执行python代码有很多种方法,这里介绍两种,Jython和ProcessBuilder,并简要介绍下它们的优缺点。原创 2023-07-02 19:14:26 · 3692 阅读 · 0 评论 -
使用EasyExcel读写Excel文件
使用EasyExcel读写Excel文件原创 2023-07-02 00:00:43 · 3607 阅读 · 1 评论 -
Excel文件导入&导出工具类
之前写过一篇导出Excel文件的通用类的文章,当时只实现了导出数据到Excel的功能,这次在上次的基础上,增加从Excel读取数据到List的功能,依旧使用POI读取Excel文件。原创 2023-07-01 20:22:36 · 1771 阅读 · 0 评论 -
分别使用dom4j和jdk自带的方法解析xml文件
分别使用dom4j和jdk自带的方法解析xml文件。原创 2023-06-24 18:00:45 · 277 阅读 · 0 评论 -
好记性不如烂笔头(2)
记录一些小技巧原创 2023-03-12 22:40:02 · 427 阅读 · 0 评论 -
Java实现Unicode与普通字符的转换
Java实现Unicode与普通字符的转换原创 2022-11-14 00:39:18 · 3455 阅读 · 0 评论 -
控制台打印进度条
控制台打印进度条原创 2022-11-13 22:15:01 · 1060 阅读 · 2 评论 -
apolloconfig分布式部署
apollo、Apollo config、分布式部署、源码原创 2022-09-30 03:01:19 · 1104 阅读 · 0 评论 -
导出Excel文件的通用类
本文记录一种通用的导出Excel文件的通用类原创 2022-07-10 19:40:04 · 292 阅读 · 0 评论 -
Spring Boot连接SQLite数据库
本文记录Spring Boot连接单SQLite数据源和多SQLite数据源的一种配置方式。原创 2022-07-06 23:56:38 · 14399 阅读 · 2 评论 -
List、Tree互转工具类
List、Tree互转工具类原创 2022-03-25 23:37:13 · 1713 阅读 · 2 评论 -
使用jnotify、commons-io监控文件变化
使用JNotify和commons-io监控文件变化原创 2022-03-25 00:03:03 · 2710 阅读 · 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 · 945 阅读 · 0 评论 -
Java诊断工具Arthas的简单使用
Arthas简介:Arthas是Alibaba开源的Java诊断工具。它可以协助解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到J原创 2021-10-18 01:00:07 · 708 阅读 · 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 · 715 阅读 · 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 · 2427 阅读 · 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 · 767 阅读 · 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 · 1427 阅读 · 1 评论 -
Maven插件开发
概述:通过开发一个简单的maven插件来更深入的了解mavenmaven:maven是一个包管理和插件调度框架,所有的功能(如编译、打包、发布)都是由插件完成的。maven有30个阶段,这30个阶段(phase)分别归属于3个标准的生命周期,所有的插件都需要绑定到其中一个阶段执行(插件本身可以设置默认阶段,pom.xml中也可以重新绑定插件的阶段,最后是可以在执行mvn命令时绑定插件的阶段)。编译时调用某个阶段,该阶段及在该阶段所属的生命周期前的所有阶段都会被执行,如,执行clean,那么pre原创 2021-07-05 00:23:26 · 602 阅读 · 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 · 835 阅读 · 1 评论 -
文件分片上传
依赖: <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.11.0</version> <exclusions> ...原创 2021-01-29 14:23:19 · 882 阅读 · 0 评论 -
扁平化部门结构获取上级、下级部门,转换成树形结构
概要:企业微信有获取部门列表的接口,该接口返回的部门列表中,每个部门有一个字段关联其上级部门,很多时候需要根据返回的列表获取某个部门的所有上级部门、子部门,以及转换成树形结构。代码:部门实体类:package com.example.study.entity;import lombok.Data;/** * 部门实体类 */@Datapublic class DepartmentEntity { /** * 部门id */ priv.原创 2021-01-07 17:38:55 · 1308 阅读 · 0 评论 -
Java注解编写
1.引入依赖 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependency> <groupId>org.apache.commons原创 2020-12-28 13:19:35 · 1142 阅读 · 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 · 2284 阅读 · 0 评论 -
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 · 360 阅读 · 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 · 469 阅读 · 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 · 213 阅读 · 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 · 825 阅读 · 0 评论 -
Spring Boot中拦截器的编写
步骤:1.实现HandlerInterceptor接口;或继承HandlerInterceptorAdapter类;2.实现WebMvcConfigurer接口,在addInterceptors方法中注册拦截器说明:1.HandlerInterceptorAdapter类实现了AsyncHandlerInterceptor接口,该接口继承自HandlerInterceptor接口,比HandlerInterceptor多了一个afterConcurrentHandlingStarted方法2.方原创 2020-08-27 12:58:39 · 488 阅读 · 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 · 288 阅读 · 0 评论 -
常见排序算法实现
1、冒泡排序public class Bubble { public void sort(int[] a) { for (int i = a.length - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (a[j] > a[j + 1]) { a[j] = a[j] ^ a[j + 1]; a[j...原创 2018-05-03 17:39:02 · 218 阅读 · 0 评论 -
使用apiggs自动生成api文档
程序员最讨厌的两件事:一是别人的代码没有文档,二是给自己的代码写文档。有买卖就有伤害有需求就有市场,比如swagger就可以自动生成文档,但是swagger是侵入式的,和业务代码混在一起,而apiggs是一个非侵入式的maven插件,可以生成三种格式的文档:html:api文档json:可直接导入postmanadoc:一种asciidoc文档,可用文件处理器转换成其它格式文档,如html等使用:在pom.xml添加以下配置,maven打包时即可生成文档<plug..原创 2020-08-12 12:01:47 · 695 阅读 · 0 评论 -
HashMap源码浅析
HashMap底层结构:数组+链表(或红黑树)Node<K,V>[] tab1.put1.计算key的hash值2.如果HashMap中的数组为空,或者长度为0,先扩容3.通过 (<数组长度> - 1 ) & hash 计算出当前元素下标,如果没有碰撞,直接将kv添加到数组中4.处理hash碰撞(准确的说是下标碰撞)的情况4.1.key相同时,需要更新,放到后面统一处理(hash相同,key不一定相同;key相同,hash一定相同).原创 2020-07-27 18:29:32 · 206 阅读 · 0 评论 -
JVM常用配置
参考:jvm配置官方文档(JDK7及更早)JVM参数详解参数 说明 示例 默认值 -Xms 初始堆大小 -Xms128m -Xmx 最大堆大小 -Xmx256m -Xmn 年轻代大小 -Xmn64m 堆大小1/3 -Xss 单个线程的堆大小。 该参数越小,可同时容纳的线程数(并发数)越高。 但是操作系统对一个进程内的线程数有限制,经验值在3000~5000左右 ...原创 2020-07-24 11:25:36 · 181 阅读 · 0 评论 -
Spring Boot全局化配置时间格式
Spring Boot默认的时间格式是:yyyy-MM-dd HH:mm. 在项目中,可能每个时间都需要秒,解决办法之一是在每个POJO对应字段加上注解:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss"),但是这种方法要给每个POJO的时间字段加注解,比较繁琐。在网上看到一个全局的配置方法,自己还没有试过,先贴出来作为笔记:1.添加配置项:spring.jackson.date-format=yyyy-MM-dd HH:mm:ss2.添加配置类:.转载 2020-07-10 17:30:03 · 1095 阅读 · 0 评论