自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 synchronized 锁升级过程

synchronized 锁升级过程Java中的synchronized锁升级过程是JVM为了提高并发性能而引入的一种优化策略,它在JDK 1.6及更高版本中得到了显著的改进。

2024-04-10 16:39:15 363

原创 2简单抢红包代码

简单抢红包代码。

2024-04-10 16:38:32 407

原创 jenkins gradle 编译时jvm不足情况

开启线程守护,第一次编译时开线程,之后就不会再开了。gradle 编译时jvm不足情况。#开启并行编译,相当于多条线程再走。#配置编译时的虚拟机大小。

2024-03-20 16:17:36 451

原创 阿里云效flow流水线构建时内存不足

打开流水线,只有管理员和拥有者才能看到这个菜单。咨询阿里云后建议自己搭建私有化集群。云效flow流水线构建时内存不足。

2024-03-20 16:16:59 680

原创 es NotSerializableExceptionWrapper[too_many_clauses maxClauseCount is set to 1024];

用了es的in查询,in中id大于1024个,导致es报错,es默认支持元素数量为1024个。

2024-03-09 11:28:28 410

原创 synchronized锁升级详细过程

当一个线程访问同步块并获取对象的锁时,会将锁的标记记录在线程的栈帧中,并将对象头中的Thread ID设置为当前线程的ID。2)后来又来了线程b,线程c,说凭什么你占有锁,需要公平的竞争,于是将标识去掉,也就是撤销偏向锁,升级为轻量级锁,三个线程通过CAS自旋进行锁的争抢(其实这个抢锁过程还是偏向于原来的持有偏向锁的线程).锁的升级过程中的第二阶段轻量级锁使用对象头中的一部分位来存储线程ID和锁标记,不需要额外的内存存储锁的状态。需要注意的是,锁的升级是逐级升级的过程,而不会存在降级。

2024-02-22 14:17:06 407

原创 Integer超过-128-127比较问题

也就是说int a1 = 127时,在范围之内,这个时候就存放在缓存中,当再创建a2时,java发现缓存中存在127这个数了,就直接取出来赋值给a2,所以a1 == a2的。查看Integer源码发现,Integer内部有一个静态变量缓存池IntegerCache,里面声明了一个Integer[]数组,范围-128——127,Jvm在运行时创建了一 个缓存区域并创建了一个integer的数组。这个数组存储了-128至127的值。5、6 看起来是一模一样的为什么一个是true,一个是false。

2024-02-06 16:23:40 370

原创 解决使用Springboot jpa update数据时报错Executing an update:delete query

解决org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query;遇到如上情况“执行一个更新/删除查询”后面报错“javax的持久类的事务需求异常”通常情况下讲,是没有书写事务,就是在Service层或者Repository层上必须加@Transactional,来代表这是一个事务级别的操作,增删改查除了查都是事务级别的,就当这是一个规范也是ok的。

2024-02-06 09:25:17 929

原创 spring三级缓存

这个很好理解,多个bean之间相互依赖,形成了一个闭环。比如:A依赖于B、B依赖于C、C依赖于A。B b;C c;A a;

2024-02-06 09:24:46 860

原创 AI 春联在线生成 挺有意思的,大家可以体验下。输入关键词,就可以生成春联了。 开源地址:GitHub - YunYouJunai-sfc AI 春联 Spring Festival

体验地址:https://ai-sfc.yunyoujun.cn/ 快过年啦,祝大家: 上联:朝九晚五职场忙 下联:副业多元财源广 横批:事业兴旺。AI 春联在线生成 挺有意思的,大家可以体验下。输入关键词,就可以生成春联了。

2024-02-06 09:24:02 764

原创 mysql,es,mongodb,redis区别与应用场景

mysql,es,mongodb,redis区别与应用场景mysql为sql型数据库es,mongodb,redis为nosql型数据库。

2024-02-06 09:14:09 457

原创 解决docker容器内时间与主机不一致问题

解决docker容器内时间与主机不一致问题。在docker文件中增加。

2024-02-06 09:13:38 432

原创 自定义Dockerfile构建运行springboot

编写dockerfile# 基于哪个镜像# 将本地文件夹挂载到当前容器# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar app.jar# 声明需要暴露的端口# 配置容器启动后执行的命令。

2024-02-05 11:12:38 1158

原创 通过dockerfile 生成自定义nginx镜像

通过dockerfile生成自定义nginx镜像。

2024-02-05 11:12:07 1097

原创 排查生产环境:MySQLTransactionRollbackException数据库死锁

一. 问题现状。

2024-02-04 11:38:02 1346

原创 多线程例子,通过启动三个线程 等三个线程都跑完后打印结果

一个多线程例子,通过启动三个线程 等三个线程都跑完后打印结果。

2024-02-04 11:37:28 356

原创 多线程实例

【代码】多线程实例。

2024-02-02 14:38:13 371

原创 Jenkins手把手图文教程[基于Jenkins 2.164.1]

本文基于当前最新的LTS版本2.164.1,理论上适应于Jenkins 2.x所有版本。

2024-02-02 14:21:03 923 1

原创 一个离奇的ArrayIndexOutOfBoundsException异常的排查过程

今天同事遇到了一个离奇的ArrayIndexOutOfBoundsException,找我协助定位,定位的过程很有意思,故而记录一下。

2024-02-02 14:20:29 863

原创 手把手教你如何将项目发布到Maven中央仓库(附步骤及常见问题解决方法)

业余时间写了个轻量级的权限控制框架,并发布到了Maven中央仓库。发布时的操作步骤还挺多,我这个记性是记不住的,所以记录一下,便于以后查阅,也希望对大家有帮助。

2024-02-02 14:19:45 1358 1

原创 跨域访问支持(Spring Boot、Nginx、浏览器)

我们的后端使用Spring Boot。Spring Boot跨域非常简单,只需书写以下代码即可。代码非常简单,不做赘述。该代码在Spring Boot 1.5.4中测试通过。

2024-02-01 09:33:14 673

原创 将应用的log4j换成logback

考虑到log4j很久不更新、性能相对弱,以及一些项目本身的原因,经过较为谨慎的考虑,决定改用logback。迁移还是比较顺利的,花了1个小时左右就搞定了,做个简单的笔记。

2024-02-01 09:32:39 922

原创 Tomcat调优教程

本文基于Tomcat 9.0编写,理论兼容Tomcat 8.x及更高版本。本文来探讨Tomcat的调优。

2024-01-31 17:15:24 1236

原创 Linux调优相关命令汇总

本文基于CentOS 7编写,理论支持所有所有版本Linux发行版,部分命令的个别参数在不同版本中可能存在细微的差异。

2024-01-31 17:14:53 2625

原创 JWT操作工具类分享

库,这是一个Java圈子最流行的。

2024-01-30 17:36:05 439

原创 推荐10款笔者一直在使用的Chrome提效插件

本文推荐的10款插件笔者一直在用,部分插件可能有点冷门,但绝壁是提升效率的好帮手,在我眼里是必备插件。笔者已创建,欢迎分享、讨论。一起打造最强Chrome插件集。

2024-01-30 15:02:30 524

原创 手把手使用SonarQube分析、改善项目代码质量(基于SnarQube 8.9.0)

本文基于SonarQube 8.9.0,理论支持6.0及更高版本。SonarQube是一个开源的代码质量管理系统,可用来快速定位代码中的Bug、漏洞以及不优雅的代码。它支持几乎所有的常见编程语言,例如Java、JavaScript、TypeScript、Kotlin、Ruby、Go, Scala等。并且还有插件机制,利用插件,可以让SonarQube更加强大,例如可以整合Findbugs、PMD、Checkstyle等。可以说,SonarQube是一款提升项目代码质量必备的根据。

2024-01-29 10:35:09 992

原创 手把手使用SonarQube分析、改善项目代码质量

本文基于SonarQube 7.9.1,理论支持6.0及更高版本。SonarQube是一个开源的代码质量管理系统,可用来快速定位代码中的Bug、漏洞以及不优雅的代码。它支持几乎所有的常见编程语言,例如Java、JavaScript、TypeScript、Kotlin、Ruby、Go, Scala等。并且还有插件机制,利用插件,可以让SonarQube更加强大,例如可以整合Findbugs、PMD、Checkstyle等。可以说,SonarQube是一款提升项目代码质量必备的根据。

2024-01-29 10:34:25 1140

原创 如何在IntelliJ IDEA数据库控制台操作Redis

最近工作中,经常要操作到Redis,尽管市面上的Redis客户端GUI非常多,例如Redis Desktop Manager、AnotherRedisDesktopManager等。但本人是一个IDEA流,更希望能在IDEA控制台上操作Redis,从而获得一致的研发体验,省得在各个窗口切来切去。于是,我尝试寻找有无合适的Redis插件,结果要么收费,要么体验不佳;接着,我又想了解一下官方对Redis支持意向,看到如下的帖子后,新也是凉了半截。

2024-01-26 10:43:47 825

原创 全网最全 MySQL EXPLAIN 完全解读

EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点,没有细节(例如type的取值不全、Extra缺乏完整的介绍等)。所以,我肝了将近一个星期,整理了一下。这应该是全网最全面、最细致的EXPLAIN解读文章了,下面是全文。本文基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。

2024-01-26 10:43:11 543

原创 如何生成漂亮的静态文档说明页

最近经常被问 https://t.itmuch.com/doc.html 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。https://t.itmuch.com/doc.html 是个人在慕课网视频《》的实战项目配套文档。

2024-01-25 10:09:30 870

原创 常用MQ产品的对比

本文整理了常用MQ之间的对比,旨在帮助大家在实际项目中选择MQ产品。

2024-01-25 10:08:20 874

原创 关于做转账操作的思路

3.然后 生成一条提现记录wx_pay_record,总金额40 三条提现明细wx_pay_record_detail 金额是10,20,10,每条wx_pay_record_detail记录中关联上账明细up_account_detail的id。利用上账明细去计算金额转账,对比直接用客户余额进行转账,可以防止高并发上账时客户余额加减错误,导致余额不正常;此时余额就算计算错误也可以通过上账和转账明细去重新计算。建议通过查询关联上账的明细up_account_detail去计算转账金额,

2024-01-25 10:07:33 339

原创 调优 mybatis saveBatch 25倍性能

稍微总结下我粗略的对比(虽然粗略,但实验结果符合原理层面的理解),如果你想更准确地实验,可以使用JMH,并且测试更多组数(如 5000,10000等)的情况。批量保存方式数据量(条)耗时(ms)单条循环插入1000121011100059927mybatis-plus saveBatch(添加rewtire参数)10002589手动拼接sql10002275100055663jdbc executeBatch(添加rewtire参数)1000324。

2024-01-25 09:59:03 1187

原创 11Docker数据持久化

数据卷是被设计来持久化数据的,因此,删除容器并不会删除数据卷。数据卷是一个可供一个或多个容器使用的特殊目录,可以绕过UFS(Unix File System)。这样既可将宿主机的/host-dir路径加载到容器的/container-dir中。这样,在容器中就只能读取/container-dir中的文件,而不能修改了。:数据卷的使用,类似于 Linux 下对目录或文件进行 mount。如果有数据需要在多个容器之间共享,此时可考虑使用数据卷容器。这样既可在删除容器的同时也将数据卷删除。

2024-01-25 09:58:02 502

原创 10Docker Compose快速入门

本节我们来探讨Compose使用的基本步骤,并编写一个简单示例快速入门。

2024-01-24 14:43:29 588

原创 九安装Docker Compose

本节我们来讨论如何安装Compose。

2024-01-24 14:42:52 353

原创 八Docker Compose简介

Compose是一个用于定义和运行多容器Docker应用程序的工具,前身是Fig。它非常适合用在开发、测试、构建CI工作流等场景。经过前文讲解,我们可使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如docker run、docker kill等。本章我们来讨论如何使用Docker Compose来轻松、高效地管理容器。为了简单起见,本章将Docker Compose简称为Compose。然而,使用分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。

2024-01-23 09:59:50 321

原创 七Docker可视化管理工具

本节介绍几款Docker可视化管理工具。

2024-01-23 09:59:17 580

原创 六使用Maven插件构建Docker镜像

我们知道,Maven是一个强大的项目管理与构建工具。如果可以使用Maven构建Docker镜像,那么我们的工作就能得到进一步的简化。经过调研,以下几款Maven的Docker插件进入笔者视野,如表13-1所示。表13-1 Maven的Docker插件列表笔者从各项目的功能性、文档易用性、更新频率、社区活跃度、Stars等几个纬度考虑,选用了第一款。这是一款由Spotify公司开发的Maven插件。下面我们来详细探讨如何使用Maven插件构建Docker镜像。

2024-01-22 11:12:50 1630

空空如也

空空如也

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

TA关注的人

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