java
文章平均质量分 56
友谊之路
事以密成,语以泄败
谋事未定,潜龙勿用
展开
-
java正则表达式提取字符串中指定的数据
正则表达式是一种用来描述、匹配和操作字符串的强大工具。它可以用于验证输入的字符串、提取特定格式的字符串、替换字符串中的特定部分等操作。String 类里也提供了如下几个特殊的方法。//判断该字符串是否匹配指定的正则表达式。//将该字符串中所有匹配 regex 的子串替换成replacement。//将该字符串中第一个匹配 regex 的子串替换成 replacement。//以 regex 作为分隔符,把该字符串分割成多个子串。我是一个好人a543,qq号是103456789";原创 2023-10-12 10:49:58 · 5556 阅读 · 0 评论 -
使用RetryTemplate优雅的重试
在springboot中,可以引入RetryTemplate的start包快速方便的使用。spring的项目就没那么方便了,这里针对spring项目对RetryTemplate做了简单的封装,抽象化处理。使得通用性更强。 <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</原创 2023-04-12 15:51:23 · 667 阅读 · 0 评论 -
线程池如何关闭
可以通过调用线程池的shutdown或shutdownNow方法来关闭线程池。原创 2024-05-07 11:39:13 · 959 阅读 · 0 评论 -
java线上问题排查之内存分析(三)
如果有人问你有没有处理过线上的问题,你就说有,最简单的,你说有个小伙子用了本地缓存,就放map里,结果没控制map大小,可以无限扩容,最终导致内存爆了,后来解决方案就是用了一个ehcache框架,自动LRU清理掉旧数据,控制内存占用就好了。这里我们使用MAT分析。所以jstat先看一下基本情况,马上就能看出来,其实就是大量对象没法回收,一直在内存里占据着,然后就差不多内存快爆了。接着就是可以用MAT工具,或者是Eclipse MAT的内存分析插件,来对hprof文件进行分析。原创 2024-05-06 17:29:45 · 990 阅读 · 1 评论 -
java线上问题排查之CPU使用率过高(一)【保姆级教程】
线上故障排查,主要包括以及。基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap这些命令是在 Linux 系统中进行系统监控和性能调优时经常用到的工具,能够帮助你快速了解系统的运行状况。原创 2024-04-30 15:40:51 · 1344 阅读 · 1 评论 -
不同多线程场景下CompletionService 和 CompletableFuture 的使用
内部通过阻塞队列+FutureTask,实现了任务先完成可优先获取到,即结果按照完成先后顺序排序,内部有一个先进先出的阻塞队列,用于保存已经执行完成的Future,通过调用它的take方法或poll方法可以获取到一个已经执行完成的Future,进而通过调用Future接口实现类的get方法获取最终的结果。CompletableFuture实现了Future接口,并在此基础上进行了丰富地扩展,完美地弥补了Future上述的种种问题。使用系统默认的线程池,而是用的自己定义好并Autowired注入的线程池。原创 2024-04-22 16:58:51 · 448 阅读 · 0 评论 -
ThreadLocal原理及实例
【代码】【无标题】原创 2024-02-27 18:16:40 · 436 阅读 · 0 评论 -
分布式事务组件Seata的TCC常见问题及解决方案
如上图所示,全局事务开启后,参与者 A 分支注册完成之后会执行参与者一阶段 RPC 方法,如果此时参与者 A 所在的机器发生宕机,网络异常,都会造成 RPC 调用失败,即参与者 A 一阶段方法未成功执行,但是此时全局事务已经开启,Seata 必须要推进到终态,在全局事务回滚时会调用参与者 A 的 Cancel 方法,从而造成空回滚。如上图所示,参与者 A 执行完二阶段之后,由于网络抖动或者宕机问题,会造成 TC 收不到参与者 A 执行二阶段的返回结果,TC 会重复发起调用,直到二阶段执行结果成功。原创 2024-02-07 15:10:33 · 1221 阅读 · 0 评论 -
EasyExcel分页上传数据
【代码】EasyExcel分页上传数据。原创 2024-02-05 14:36:34 · 1124 阅读 · 0 评论 -
EasyExcel下载带下拉框和批注模板
【代码】EasyExcel下载Excel带下拉框和批注效果。原创 2024-02-05 12:01:21 · 1169 阅读 · 0 评论 -
DateUtil工具类封装
类说明:日期工具类* * 详细描述:原创 2024-01-25 11:45:49 · 456 阅读 · 0 评论 -
CompletableFuture的thenCombine结果组合用法实例
thenCombine 用法,是将任务用多线程分组执行再组合。在项目实战中应用场景还是比较多的。项目实例写得还不够优雅,还有优化空间。原创 2024-01-17 18:33:46 · 772 阅读 · 0 评论 -
AOP实现接口请求日志,耗时记录
很多时候后端排查问题,我们要确认用户到底请求了哪些接口,接口的入参和返回是怎么样的。又或者是接口耗时有多高。这些东西都可以通过日志去排查,我们只需要将每次的请求记录日志。要如何优雅的实现接口日志呢?有的人喜欢用拦截器,有的人喜欢用aop。后面我们会讨论下这两种方案的优劣。原创 2023-10-09 15:49:03 · 509 阅读 · 0 评论 -
通过正则给手机号|身份证|护照脱敏
replaceAll 将指定字符位置字符替换成*实现脱敏。需要写好相应的正则表达式。抛砖引玉,希望兄弟们在替换其他字符的时候可以借鉴参考使用;手机号|身份证|护照进行脱敏操作。原创 2023-10-09 17:20:16 · 438 阅读 · 0 评论 -
java解决CORS跨域问题【总结】
*** 跨域过滤器* @return/** 允许任何域名使用 */ // corsConfiguration.addAllowedOrigin("*");/** 允许的请求头 */ corsConfiguration . addAllowedHeader("*");/** 允许的方法 */ corsConfiguration . addAllowedMethod("*");} }/*** 跨域过滤器* @return。原创 2023-12-01 20:24:02 · 3367 阅读 · 0 评论 -
建议使用LocalDateTime而不是Date
通过阅读本篇文章你将了解到:如果不格式化,打印出的日期可读性差Tue Sep 10 09:34:04 CST 2019 使用对时间进行格式化,但是线程不安全的的方法最终调用代码:是共享变量,并且这个共享变量没有做线程安全控制。当多个线程同时使用相同的对象【如用修饰的】调用方法时,多个线程会同时调用方法,可能一个线程刚设置好值另外的一个线程马上把设置的值给修改了导致返回的格式化时间可能是错误的。在多并发情况下使用需格外注意除了是线程不安全以外,方法也是线程不安全的。方法实际调用方法来解析,方法里主要原创 2023-10-09 16:37:09 · 45 阅读 · 0 评论 -
map的值根据value排序后输出
场景:一个value值是无序的Map , 返回一个新的Map且这个Map的value值是有序的。原创 2023-04-12 15:38:45 · 854 阅读 · 1 评论 -
三种获取当天剩余时间的简洁方式
三种获取当天剩余时间的简洁方式,分别使用。原创 2023-04-12 16:55:21 · 1136 阅读 · 1 评论 -
java的spi 拓展机制
这个类,ServiceLoader通过读取resources/META-INF/services/com.xxx.xxx.xxxService文件下的xxxService的spi实现类,通过。SPI全称Service Provider Interface,是Java提供的一套用来。,它可以用来启用框架扩展和替换组件。SPI的作用就是为这些被扩展的API寻找服务实现。下面我们来简单实现一个jdk的SPI的简单实现。获取对应类实例,并调用对应方法。原创 2023-10-09 15:53:42 · 138 阅读 · 0 评论 -
jsoup登录日志平台后调企业微信机器人自动发送错误日志告警
1.jsoup实现登录,获取到cookie和token等用户鉴权信息。3.调用日志平台错误日志Top榜接口,查询到结果集。下面是用错误日志Top10告警发送。4.调用企业微信机器人发送消息接口。2.获取接口相应的key值。原创 2023-11-24 17:09:45 · 708 阅读 · 0 评论