自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 flowable sql打印

【代码】flowable sql打印。

2025-11-21 09:40:05 357

原创 mybatis mapper内部类的使用

mybatis是支持内部类。

2025-11-03 16:09:43 84

原创 springMvc

处理器适配器是适配controller和servlet的关联,然后controller(handler)又是各种不同的请求,但是servlet底层都是固定的request和response处理。MVC容器初始化时,处理器映射器mapping注册是通过后置处理器来完成的,实现了InitializingBean接口。MVC 进行进行容器初始化,并且将IOC阶段的web容器作为当前容器的父容器,因为MVC实例。先处理拦截器中的前置处理操作,如果前置处理返回false,那么直接调用拦截器的最终通知。

2025-10-26 13:18:44 397 1

原创 Kafka的概念

2、消费的原理:segment(topic+分区) + index(offset)+二分查找+顺序查找。基于时间:默认是保存7天 ----》----log.retention.hours=168。kafka元数据是保存在zookeeper服务器节点上的(znode),包括topic,分区属性。生产者Producer,消费者(组),kafka节点(集群),zookeeper节点(集群)Partition:topic分区,比如订单分为已支付,未支付,已发货,待发货。

2025-10-26 13:17:58 349

原创 maven mvn 安装自定义 jar 包

sqljdbc4-3.0.jar 是连接 Microsoft SQL Server 数据库比较旧版本的一个 jar 包,线上的 maven 仓库都没有收录,因此,下载到这个 jar 包后,只能手动通过 mvn install 命令安装。格式:mvn install:install-file -Dfile=.jar -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dpackaging=jar。-Dfile=.jar 文件绝对路径。

2025-10-09 11:12:00 456

原创 java 读文件(分离字符串成sql)

【代码】java 读文件(分离字符串成sql)

2025-09-03 14:25:40 93

原创 Apache Commons ConvertUtils

对于框架不支持的特殊类型(如枚举、自定义日期格式),需注册自定义转换器:// 注册枚举转换器(字符串转枚举)

2025-09-01 15:29:21 476

原创 easyexcel流式导出

EasyExcel 支持流式导出,这是它的一个重要特性。流式导出可以有效解决大数据量导出时的内存溢出问题。

2025-07-24 14:41:46 803 1

原创 何实现在上亿条的用户搜索日志中找到Top100的关键词

(2)创建一个长度为n(如2048)的哈希表数组,用来统计每个小文件中关键词出现的频率。服务端开启多线程并行遍历大文件切割出来的小文件,然后对每个用户搜索的关键词进行哈希取模运算,通过计算的结果将关键词统计到哈希表数组中。(1)将用户搜索的日志文件(一个大文件)切割成若干个小文件(如设置每个小文件大小为512KB)(3)使用小顶堆(小顶堆适用于解决统计频率最高的TopN的问题)统计前x位的关键词。(1)使用“分而治之”的思想,将大文件分割为小文件(可以使用哈希取模法切割文件)。

2025-07-24 09:52:56 208

原创 ​​Mermaid和常用语法

流程图

2025-07-24 09:14:14 1117

原创 敏感数据加密后如何实现模糊查询

内存解密方案的优点是简单方便,缺点是每次将加密后的数据整表加载到内存中然后解密再匹配,随着业务的发展,业务数据量会越来越大,那么很容易造成OOM。如果在数据库里面的数据已经加密了,此时我们将这些数据查询到内存中,然后进行解密操作,最后在解密后的数据中进行模糊查询来筛选出符合条件的数据。如果要查询186手机号开头的用户信息,首先通过186手机号在明文表中查询对应的用户id,然后通过用户id去用户表中查询对应的用户数据。(2)如果支持敏感字段的模糊检索,那么加密的密文随原文长度增长而增加。

2025-07-22 09:45:08 862

原创 Cookie、Session、Local Storage和Session Storage区别

(5)Session保存在服务端,常用于用户认证(存储用户的登录状态,判断用户是否已经登录)、购物车功能(存储用户在购物车中的商品信息)、记录用户偏好设置(存储用户的个性化设置,如语言、时区等)、保存游戏状态(在游戏中存储用户的进度和状态)等场景,但是使用 Session时需要考虑安全性问题(如XSS攻击、CSRF攻击),确保用户数据的安全。Session由服务端生成,它代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的,Session对象用来存储特定用户会话所需的信息。

2025-07-21 15:58:16 837

原创 flowable表结构

此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。1.全局参数, 默认三个参数next.dbid, IdGenerator区间, schema.history, 自动执行sql历史, schema.version, 当。记录机制基于Activiti引擎的事件机制的一般用途,并默认禁用。

2025-07-16 15:33:39 645

原创 smart-doc的接入

这个文档工具在目前我所经手的项目中广泛之使用,如图,需要的功能基本都有了🥰。

2025-07-15 14:09:00 797

原创 springboot 多数据源启动报错

报错内容如下:解决方式如下:})...

2025-07-11 10:41:05 254

原创 SpringBoot中如何引入第三方的SDK

在项目中经常会遇到使用第三方SDK情况,即就是第三方生产的jar包,但是这个不能上传到maven仓库中,由于我们的项目需要依赖到这个SDK,那么我们可以通过以下的几步就可以轻松的引入SDK到我们项目中。(1)三方的jar包放到项目的src/main/resources目录下。(2)添加maven依赖。

2025-07-09 17:43:30 394

原创 git 报错fatal: refusing to merge unrelated histories

等等,就是这样完美的解决咯!

2025-07-09 14:42:43 224

原创 Spring 为何需要三级缓存解决循环依赖,而不是二级缓存

循环依赖处理示例分析(AService ↔ BService):1、AService实例化,其ObjectFactory被存入三级缓存2、 AService开始属性填充,发现需要BService3、 触发BService加载流程:3.1、 BService实例化,其ObjectFactory存入三级缓存3.2、 BService开始属性填充,发现需要AService。

2025-07-03 11:18:33 1184

原创 idea多线程编译设置

设置下线程数。

2025-07-03 09:28:31 206

原创 JVM的场景优化

这么做的结果就是,过了一段时间后,OOM依然会出现。死锁并没有第一种场景那么明显,web应用肯定是多线程的程序,它服务于多个请求,程序发生死锁后,死锁的线程处于等待状态(WAITING或TIMED_WAITING),等待状态的线程不占用cpu,消耗的内存也很有限,而表现上可能是请求没法进行,最后超时了。混合回收的基于复制算法的,所以大对象的复制会比较耗时,如果某个老年代的Region超过85%的对象是存活的,那他不会被回收,通过 -XX:G1MixedGCLiveThresholdPercent 设置。

2025-07-02 15:26:07 703

原创 flowable工作流的学习demo

需要注意的是,Authentication.setAuthenticatedUserId(currentUserId) 方法设置的当前用户ID在任务完成时对历史表产生影响是在任务监听器中触发的,例如在 “complete” 事件的任务监听器中执行了设置当前用户ID的操作。通常在开启一个新的流程实例、完成任务或者进行其他涉及用户身份的操作时,我们可以通过 Authentication.setAuthenticatedUserId() 方法设置当前用户的身份信息,以保留用户与相应操作的关联。

2025-06-14 22:58:51 752

原创 idea配置迁移

注意:最重要一点,如果安装idea时经过设置的,最好把原先\Roaming\JetBrains\IntelliJIdea2022.3.2复制到D:/software/IntelliJ IDEA 2022.3.2/config、\Local\JetBrains\IntelliJIdea2022.3.2复制到D:/software/IntelliJ IDEA 2022.3.2/system里面的数据原封不动的复制一份到目标目录,然后重启idea就可以了。更改IDEA的默认设置目录。

2025-06-14 20:09:51 473

原创 Java并发容器框架

/ node数组最大容量:2^30=1073741824// 默认初始值,必须是2的幕数//数组可能最大值,需要与toArray()相关方法关联//并发级别,遗留下来的,为兼容以前的版本// 负载因子// 链表转红黑树阀值,> 8 链表转换为红黑树//树转链表阀值,小于等于6(tranfer时,lc、hc=0两个计数器分别++记录原bin、新binTreeNode数量,<=UNTREEIFY_THRESHOLD 则untreeify(lo))

2025-06-10 14:09:42 1053

原创 高并发下的计数器,为什么阿里不推荐使用 AtomicLong

LongAdder 是 JDK1.8 由 Doug Lea 大神新增的原子操作类,位于 java.util.concurrent.atomic 包下,LongAdder 在高并发的场景下会比 AtomicLong 具有更好的性能,代价是消耗更多的内存空间。LongAdder 是 Google 开源的一个高性能计数器实现。它采用了一种分段锁的策略,将一个 long 型的变量分割成多个 16 字节的段,每个段都使用一个独立的 AtomicLong 进行更新。

2025-06-04 14:14:38 961

原创 常用工具网站

https://github.com/dail8859/NotepadNext/releases

2025-06-04 13:33:48 120

原创 synchronized实现原理

synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法进入临界区,同时还可以保证共享变量的内存可见性。

2025-05-30 13:45:18 680

原创 springboot文件上传下载

SpringBoot中,类型可以精确控制HTTP响应,为文件下载提供完善的HTTP头信息。• 完全控制HTTP响应和头信息• 适合各种资源类型的下载• 支持动态生成的文件下载• 需要精确控制HTTP响应的场景• 动态生成的文件下载• 自定义缓存策略的文件服务。

2025-05-30 11:17:41 722

原创 多线程的一些概念

两个或两个以上的线程持有不同系统资源的锁,线程彼此都等待获取对方的锁来完成自己的任务,但是没有让出自己持有的锁,线程就会无休止等待下去。线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。如上图所示,Thread-1持有资源Object1但是需要资源Object2完成自身任务,同样的,Thread-2持有资源Object2但需要Object1,双方都在等待对方手中的资源但都不释放自己手中的资源,从而进入死锁。

2025-05-29 11:29:18 684

原创 ReentrantReadWriteLock读写锁

读取锁和写入锁都支持锁获取期间的中断;Condition支持。仅写入锁提供了一个 Conditon 实现;读取锁不支持 Conditon ,readLock().newCondition() 会抛出 UnsupportedOperationException。

2025-05-28 14:12:54 357

原创 volatile底层原理详解

Java语言规范对于volatile定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致性地更新,线程应该确保通过排它锁单独获得这个变量。首先我们从定义开始入手,官方定义比较拗口。通俗来说就是但是它并不能保证多线程的原子操作。这就是所谓的线程可见性。。

2025-05-28 13:50:12 757

原创 了解final

按照final修饰的数据类型分类:

2025-05-23 17:08:08 1113

原创 Yavi用一行代码实现各种复杂验证

适用于任何对象的约束。包括Java Beans、Records、Protocol Buffers、Immutables等。支持API,以及结合验证结果和验证器的功能,融入了函数式编程的概念。类型安全的约束,不支持的约束不能应用于错误类型。在创建对象前对参数进行验证。

2025-05-23 16:55:54 202

原创 import*的展开(开发工具)

Java社区和许多编码规范(如Google Java Style)推荐明确导入所需的类,而不是使用通配符导入。很多IDE(如 IntelliJ IDEA、Eclipse)在自动补全功能上对于明确导入的类支持更好,使用。明确的导入语句有助于快速了解类的依赖关系,便于管理和修改。隐藏了实际使用的类,其他开发者在阅读代码时需要额外查找具体使用了哪些类,增加了理解代码的难度。虽然现代编译器和JVM对导入语句的处理非常高效,但在大型项目中,过多的。可能导致编译器无法明确识别要使用的具体类,进而引发编译错误。

2025-04-24 17:38:16 544

原创 easyexcel工具类

【代码】easyexcel工具类。

2025-04-03 14:16:45 134

原创 redis检测大key

【代码】redis检测大key。

2025-02-25 10:46:04 231

原创 springboot 导入其他配置文件

从 Spring Boot 2.4 开始,支持通过属性导入其他配置文件。

2025-02-21 14:15:14 501

原创 在线正则网站

Github 地址:https://github.com/CJex/regulex。地址:https://jex.im/regulex/#!flags=&re=

2025-02-21 11:26:54 212

原创 红包算法实现

微信红包的分配算法通过将额度范围设置为这种设计既符合数学逻辑,也满足了用户体验的需求,是一种非常巧妙的算法设计。下面是一个基于 Java 的实现,用于模拟微信红包的分配算法。该算法的核心思想是:每次随机生成一个金额,范围在之间,同时确保总金额能够合理分配。

2025-02-20 10:43:25 388

原创 如何利用 Java 在线生成 PDF 文件

iText,对,没错,它就是我们今天的主角。iText是著名的开放源码站点一个项目,是用于生成PDF文档的一个java类库,通过iText不仅可以生成PDF或rtf的文档,而且还可以将XMLHtml文件转化为PDF文件。iText目前有两套版本,分别是iText5和iText7。iText5应该是网上用的比较多的一个版本。iText5因为是很多开发者参与贡献代码,因此在一些规范和设计上存在不合理的地方。iText7是后来官方针对iText5的重构,两个版本差别还是挺大的。

2025-02-17 14:16:10 646

原创 为什么数据库和数据库连接池不采用类似java nio的IO多路复用技术使用一个连接来维护和数据库的数据交换?

传统的阻塞IO为了提高效率,需要创建一定数量的连接形成连接池,而nio仅需要一个连接即可(大部分情况下一个连接即可)。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以Netty为核心。至于这些事件的处理方式,到底是业务代码循环着处理、丢到队列里,还是交给线程池处理,由业务代码决定。对于使用DB的程序来讲,不管使用多路复用,还是连接池,都要维护一组网络连接,支持并发的查询。在网络服务中,IO多路复用起的作用是。

2024-12-25 16:51:07 474

redis复习资源.讲解redis

redis复习资源.讲解redis

2025-06-01

算法与数据结构java版本

java版本的算法与数据结构leetcode习题

2025-05-23

2024Leetcode最新解题笔记

2024Leetcode最新解题笔记

2024-04-18

阿里巴巴java性能调优实战手册

阿里巴巴java性能调优实战手册

2022-06-12

空空如也

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

TA关注的人

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