- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 Spring boot项目 MySQL数据库死锁----父线程开启事务导致数据库死锁
在一次操作中出现数据库死锁,异常栈如下可以看到 出现了CannotAcquireLockException,无法获取到锁,通过搜索引擎查询到,该异常通常是死锁引起的。
2024-07-08 11:18:02
595
原创 excel去除外部链接
在使用一些java的工具打开excel(xlsx)的时候,经常由于外部链接过多导致文件打开非常慢,或者导致打开的时候内存溢出。
2024-04-10 02:14:38
555
原创 ajax无法下载文件
有一个下载文件的需求,最初前端是使用form做的,后端返回一个文件流,大概是下面这个样子Asp.net 代码上面的代码,在后端返回文件流的时候,form会自己下载文件。现在需求发生了改变,需要在下载文件的时候增加Loading遮罩,查阅文档发现,form自身的提交事件无法处理返回值,因为没有请求成功的回调函数。
2023-09-04 15:45:32
277
2
原创 Flowable 简单介绍及使用
Flowable 核⼼思想还是在做⼀个功能丰富的 流程 引擎⼯具 , 除了最最基础的⼯作 流 , 他还提供了很多其他的扩展点 , 我们可以基于 Flowable 实现出许多我们想要的功能
2023-05-19 15:34:45
12606
6
原创 第五章 虚拟机栈
由于跨平台的设计,Java的指令都死根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的优点:跨平台、指令集小、编译器容易实现缺点:性能下降、实现统一的功能需要更多的指令内存中的栈和堆即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪儿。java虚拟机栈是什么?java虚拟机栈,每个线程在创建时都会创建一个虚拟机栈,其内部保持一个个的(Stack Frame),对应一次次的调用是线程私有的。
2023-05-10 09:32:01
152
原创 java 方法执行时间工具类StopWatch
在java中,我们想看方法执行时间的时候,通常使用System.currentTimeMillis()方法分段打出日志查看,但是这样很不方便,时间啥的需要自己计算。
2023-01-11 17:10:48
1473
原创 一种文件和base64互转的实现
有的时候需要将文件通过网络传输,这个时候服务端可以将文件转成base64的字符串,然后进行传输,客户端接收到后可将base64再转成文件并保存到当地。
2022-09-30 14:34:13
214
原创 设计模式1-策略模式
做项目的过程中,可能对某一个完成的操作,有重复的部分,也有不同的部分,不同的部分需要根据情况判断,走那个分支,如果判断的分支很多,或者判断条件很繁琐,代码的结构和可读性就会变差,我们可以使用表驱动的方式或者策略模式来解决这个问题。...
2022-08-01 23:33:22
118
原创 redis作为spring boot项目的缓存
一、背景在日常开发中,有很多情况下需要使用缓存来提高系统的访问速度,本文章将使用redis和jetcache来介绍一种缓存在spring boot项目中的使用二、使用2.1引入相关依赖 <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId>
2022-05-26 20:46:17
188
原创 常用命令【docker,服务器,windows】
docker命令1.列出本地镜像2.查看运行的容器3.查看docker容器日志。4.把镜像推送到仓库1.列出本地镜像docker images使用docker images 命令可以列出本地主机上已有镜像的基本信息2.查看运行的容器docker ps -l3.查看docker容器日志。docker logs myjenkins4.把镜像推送到仓库docker push dockerwyb002/test:tagname.........
2021-12-18 23:58:42
405
原创 单元测试遇到的坑
在单元测试时,无法注入beanError creating bean with name Unsatisfied dependency expressed through field
2021-01-30 19:27:01
522
原创 第四章 程序计数器
4.1PC Register介绍JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址:或者,如果是在执行nativ
2020-12-20 23:49:35
186
原创 第三章 运行时数据区概述及线程
3.1概述Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应,这些与先昵称对应的数据区域会随着线程开始和结束而创建和销毁。灰色的为单独线程私有的,红色的为多个线程共享的。既: 每个线程:独立包括程序计数器、栈、本地栈 线程间共享:堆、堆外内存(永久代或元空间、代码缓存) 3.2线程 线程是一个程序里的运行单元。JVM运行一个应用有多个线程并行的执行 ...
2020-12-13 11:31:24
75
原创 第二章 类加载子系统
2.1类加载器子系统的作用 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件表示 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定 加载的类信息存放于一块称为方法区的内存空间,除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射) 2.2类的加载过程加...
2020-12-10 13:49:17
101
原创 第一章JVM与Java体系结构
1.1JVM的整体结构HotSpot VM是目前市面上高性能虚拟机的代表作之一。它采用解释器与及时编译器并存的架构1.2JVM的架构模型java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构是基于寄存器的指令集架构。具体来说:这两种架构之间的区别:基于栈式架构的特点设计和实现更简单,适用于资源受限的系统避开了寄存器的分配难题:使用零地址指令方式分配指令流中的指令大部分是零地址指令,其执行过程依赖操作栈。指令集更小,编译器容易实现不需要硬件支持,可移植性
2020-12-08 11:31:33
157
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人