- 博客(143)
- 资源 (5)
- 收藏
- 关注
原创 java 并发执行批量异步任务(Future、 CompletableFuture 实现)
当我们需要批量执行一些比较耗时任务时,使用并发的方式减少业务处理的整体时间,防止客户端响应时间过长。
2023-10-18 20:15:53 2225
原创 SpringBoot 集成 IBMMQ 代码示例教程
SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。使用 SpringBoot 集成 IBMMQ 可灵活控制消息发送与接收的速度。
2023-10-16 13:43:23 2776 4
原创 SpringBoot 集成 JMS 与 IBMMQ 代码示例教程
SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。使用 SpringBoot JMS 集成 IBMMQ 十分的方便。
2023-10-16 11:26:46 1750
原创 循环外声明变量和循环内声明变量的区别
变量声明在外部,使得变量作用域变大,出现在了没有使用到的外部作用域里,降低了代码的隔离性与解耦性;而且for代码块结束后,该变量仍然存活且持有引用,导致GC延迟。可以看出,经过编译后的class文件,变量的声明与初始化都在for循环中。可见即使在外部声明变量,也不会获得性能上的提升。所以,除非for循环外部需要使用该变量,否则禁止将for循环内部变量的声明与初始化放在for循环外部。但这真的能提升性能吗?
2023-10-13 19:24:48 821
原创 优化 if-else 语句的最佳方案
尽量优化 if-else 语句,防止代码结构变得复杂混乱,防止过多的大括号,导致代码阅读困难。else 后面没有其他业务时,可省略最后的 else,使代码简洁。// else 后面没有其他业务时,可省略最后的else,使代码简洁// TODO 1return;根据相应场景使用合适的优化方案。Optional 类虽然简洁,不过采用这种链式编程,虽然代码优雅了。
2023-10-11 17:19:58 549
原创 消除 if-else 和 switch 多分支语句的最佳方案
注重代码规范的程序中,不允许出现 if-else 和 switch 分支较多的分支语句,否则产生大量的冗余代码、严重影响代码可读性。分支语句的分支较多,或分支具有可扩展性,则建议使用方案来消除分支语句,避免代码臃肿、可读性低。枚举方案:不同分支仅返回不同的值。Map + 函数式接口:不同分支执行不同的处理代码,不适于对象封装。轻量级。策略模式:不同分支执行不同的处理代码,适用于对象封装(适合用对象划分,或需要封装不同的属性和方法,或需要封装多个方法)。
2023-10-11 11:20:08 200
原创 Redis 分布式锁 @Klock 注解详解及使用教程
有些人可能会给两个服务的配置改成不一样,比如定时任务的时间修改,一个正常执行,一个在不可能的时间执行,还有人直接给服务设置一个标志位,只有某个标志位的能执行。最常见的就比如手机端录入信息到后台,比如注册之类的等等,用户端可能因为各种原因可能会点击多次,导致后台可能会出现多笔记录的情况,这个时候很简单,用到我们的锁,假设,我们是注册用户,手机号是唯一的。这个时候,如果是点击了两次,第一次业务进入获取到锁进行处理,第二过来了也是一个等待,要么第一次处理完成,第二次业务判断已注册,要么第二次直接超时了。
2023-10-10 16:21:17 845
原创 IBMMQ 安装教程(IBM WebSphere MQ 安装教程)- 及 IBMMQ 服务器搭建教程
IBMMQ 7.5提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2023-09-23 10:56:14 3234 2
原创 nvm下载安装教程
nvm install 18.17.0:安装 node 18.17.0, version是特定版本也可以是最新稳定版本 latest。nvm npm_mirror [url] :设置npm镜像 https://github.com/npm/cli/archive/。nvm node_mirror [url] :设置 node 镜像。nvm root [path] :设置存储不同版本 node 的目录。如果未设置,默认使用当前目录。nvm use [version] [arch] :使用制定版本 node。
2023-09-21 20:16:06 5506
原创 Mybatis-plus 抽象-接口方法类
使用 service 调用进行 CRUD,需要使用 service 接口继承 Iservice,并且 service 接口的实现类要继承 ServiceImpl。xxMapper 继承 BaseMapper 接口时,继承了其中的空方法,Wrapper 代码生成器的作用是为了动态向 sql 的 CRUD(增删改查)语句,即装饰从 BaseMapper 继承的 sql 语句,Wrapper 就是典型的修饰器模型。BaseMapper 实现了 Mapper 接口。
2023-09-11 18:03:30 235
原创 Java 使用 EMQX 实现物联网 MQTT 通信
java 使用 EMQX 消息服务器,实现物联网 MQTT 协议的消息订阅发布。含详细设计代码。
2023-09-11 17:56:06 2134
原创 实现 easyExcel 导入导出自定义字典转换器
easyExcel 导入导出自定义字典转换器,包括导入字典转换以及导出字典转换。适配多个逗号分隔的字典值转换。
2023-09-09 18:32:19 3644
原创 java 集成免费虹软人脸识别 SDK,实现人脸识别认证功能
本文详细介绍了 java 集成免费虹软人脸识别的详细流程,从 SDK 下载到 SDK 的集成,以及 API 的封装策略。
2023-09-09 15:37:21 1881 2
原创 mybatis 连表查询,子查询 collection,返回 vo
AppsGroupMapper.java 子查询。AppsGroupMapper.xml 子查询。AppsService.xml 主查询。
2022-08-08 15:32:34 1552
原创 Mybatis-Plus 之 Wrapper
Wrapper 使用 lambda 形式可以通过方法引用的方式来使用实体字段名,避免直接写数据库表字段名时的错写名字。
2022-08-06 01:29:59 2419
原创 Java 判空工具方法大全
在程序中必须进行严格的判空处理,避免对空对象的异常操作。接收对象或对象属性的空值校验。查询对象为空时,获取对象属性的空指针异常。对空 list、set 进行操作,产生的空指针异常。如此等等。
2022-07-24 15:54:13 14581 1
原创 @RequestBody 和 @ResponseBody 详解
responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。@ResponseBody是作用在方法上的,@ResponseBody表示该方法的返回结果直接写入HTTPresponsebody中,一般在异步获取数据时使用(也就是AJAX)。@ResponseBody的作用其实是将java对象转为json格式的数据。...
2022-07-14 21:30:05 6757
原创 Lombok 注解及使用大全
一、Lombok 注解大全优点:能通过注解的形式自动生成构造器、getter / setter、equals、hashcode、toString 等方法,提高了一定的开发效率,让代码变得简洁,不用过多的去关注相应的方法。属性做修改时,也简化了维护为这些属性所生成的 getter / setter 方法等。缺点:不支持多种参数构造器的重载。虽然省去了手动创建一系列方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度。.........
2022-07-11 13:35:54 1500
原创 validation 分组校验注解大全及使用详解
JSR303(Bean的校验框架)的注解,在controller的方法中验证时(运行时校验属性)使用,如果不合法(校验失败),注解中的提示信息会保存在result中。
2022-07-09 10:22:38 3321
原创 Java - 使用 Redis GEO 测算经纬度距离
Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。Redis GEO 操作方法有:
2022-07-08 20:57:55 912
原创 date、time、datetime、timestamp区别
一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction]比如:’1970-01-01 00:00:01.000000’ ~ ‘2038-01-19 03:14:07.999999’。timestamp占4字节,datetime占8字节;包含时区信息,如果日后修改了时区的话,timestamp所表示的时间会随时区而变化,而datetime不会。timestamp 更适合来记录时间,比如我在东八区时间现在是 2016-08-02 10:35:52, 你在日本(东九区此时时间为 20
2022-07-08 17:47:50 1638
原创 MySQL字段类型与Java实体类类型对应转换关系
MySQL Connector/J( MySQL官方JDBC驱动程序)在处理MySQL数据类型和Java数据类型之间的转换方面非常灵活。通常,任何MySQL数据类型都可以转换为java.lang.String。可以将字符串和任何数字类型转换为任何Java数字类型,尽管可能会发生舍入、溢出或精度损失。从Connector/J 3.1.0开始,JDBC驱动程序会发出警告或引发JDBC规范所要求的DataTruncation异常(数据截断异常),除非通过使用jdbcCompliantTruncation属性并将其
2022-07-06 11:30:22 3870
原创 equals 方法
“==”对于基本类型,比较的是值;对于引用类型比较的是地址。Object类中equals的默认实现等价于“==”,即比较引用类型的地址。Java中很多类(如String、Date、Long、HashMap和File类等)都重写了Object类的equals方法,导致其和“==”不等价。String类中重写的equals是先用“==”比较两个引用类型的引用地址,相同则返回true,引用地址不同再进行字符串比较。...
2022-07-04 08:40:34 147
原创 mysql 的一些重要知识
聚簇索引、主键索引:聚簇索引、辅助索引、二级索引:超过 long_query_time 阈值(默认10s),就被认为是慢查询。手动开启慢查询日志,慢查询会被记录在慢查询日志里。InnoDB行锁是通过给索引上的索引项加锁实现的,因此只有走索引查询数据,(索引未失效)innoDB才会使用行锁,否则InnoDB将使用表锁。由于MySQL的⾏锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同⾏的记录,但是如果是使⽤相同的索引键,是会出现锁冲突的。...
2022-07-04 08:11:03 92
原创 Maven 中跳过单元测试方法
Maven 构建生命周期为我们提供了对项目执行各种操作,例如验证,清理、打包、测试和部署项目。而有时候我们需要跳过单元测试,例如,在处理新模块时,还有未通过的单元测试时。在这些情况下,我们可以在打包时跳过测试以避免编译和运行测试时发生的时间。...
2022-07-04 00:52:26 2951
原创 pom.xml 配置文件标签:dependencies 和 dependencyManagement 区别
通常会在一个项目的最顶层的父pom中使用dependencyManagement。
2022-07-04 00:26:11 944
SpringBoot 集成 IBMMQ 源码 demo
2023-10-12
IBMMQ 错误码表 PDF(完整)
2023-09-23
IBMMQ 7.5.0.2 (IBM WebSphere MQ 7.5.0.2)安装包
2023-09-23
mfc平衡二叉树绘制-源码(节点动态插入、动态删除、前序遍历、中序遍历、后续遍历动态显示)
2022-03-18
mfc 计算器实现-源码:C++实现,表达式求值,mfc用户界面
2021-04-28
C++计算器实现-源码(含项目设计说明书)
2021-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人