自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于数据竞争

最近在学习并发,看到数据竞争,记录一下。

2025-12-17 11:47:23 203

原创 关于锁的学习

提出问题:一般项目里,这个项目的Account 类应该也会有多个实例对象把,哪怕我给this和target上锁,他怎么确定我锁的是目标的那个对象呢,而且如果在那个时候,如果在多个服务或者service里都实例出来了target对象,是不是都被锁住了, 只有上锁的这个资源在方法执行完了,其他service关于这个实例对象的方法和资源才能执行?因为每个service实例化的是不同的Java对象,它们的内存地址不同,所以锁互不影响。// ❌ 问题:不同JVM,对象实例完全不同,锁完全无效!锁的是目标对象实例。

2025-12-16 16:36:37 509

原创 多线程学习记录:关于并发请求数超过线程数的场景

多出来的请求会进入等待队列排队,而不是被拒绝或丢失。当有线程空闲时,会自动从队列中取出下一个任务执行。这种机制确保了任务的顺序处理和系统资源的合理利用。

2025-11-05 10:21:19 196

原创 关于直接调用和代理调用事务传播机制的问题

原因:这段代码中,save1和save2都是独立的事务,但是执行到save2时抛出了异常,save2回滚了,在save1中又抓到了这个异常,并且抛出了,所以save1也回滚了。如果方法没有关联到一个事务,容器不会为他开启事务,如果方法在一个事务中被调用,该事务会被挂起,调用结束后,原先的事务会恢复执行。:业务方法需要在一个事务中运行,如果方法运行时,已处在一个事务中,那么就加入该事务,否则自己创建一个新的事务。如果不存在事务则开启一个事务,如果存在事务则加入之前的事务,总是只有一个事务在执行。

2025-11-01 18:17:17 908

原创 通过VisualVM查看JAVA进程和内存情况

通过VisualVM可以检测JAVA进程和内存使用情况,在进程报错内存溢出错误的时候,排除问题。

2025-09-23 14:31:27 153

原创 java设置PDF首页为封面遇到了内存溢出的情况

原因:idea设置的堆内存不足,新生代需要的内存不够用,GC回收老年代的后,依然不够,就会报这个错误。解决办法:启动配置,设置虚拟机VM参数,增加堆内存。// 渲染第一页(300 DPI高质量)

2025-09-23 14:28:08 182

原创 记录一次操作文件的相关代码,实现上传需求

这次遇到的token是直接放在请求头里的,所以我要获取请求头的参数,进行权限校验,@DataValid是网关拦截的自定义注解,对token进行解码操作的。FileDto是一种文件结果的类型规范,记录了上传文件后的文件地址,文件大小,文件名、文件存储地址和文件加密后的MD5值(以后自己写也要执行这种规范),然后把记录存进一张表里,记录每次的文件上传操作。这一步是对文件的格式判断,通过对文件名后缀判断他是什么格式,并通过存在数据库字典表中的后缀名,来匹配是不是支持的文件格式,实现仅支持包含格式的文件上传,

2025-07-16 14:34:07 346

原创 记录一次JAVA调用讯飞语音合成SDK和学习泛型接口类的使用

该监听器的作用是,当语音合成成功输出文件时,调用监听器内的回调方法,在回调方法中,做了文件格式转换,文件删除和调用上传oss服务器的方法。不过最后由于,讯飞的语音合成SDK在多个请求下,最终只能生成一个文件,不支持高请求下的需求,遂转用阿里的付费语音合成。new SynthesizeToUriListener() (这一步)并且在TTSByIfly方法中作为入参。核心实现代码中,定义了一个监听器。

2025-03-27 15:31:51 458

原创 java的异常处理机制,向上抛出

方法调用栈的概念异常向上层抛出的过程示例代码说明 以下是结合上述代码详细说明在方法调用栈中各个调用方法的位置所在以及位置变化情况:程序从 方法开始执行,此时方法调用栈中只有一个元素,即 方法处于栈底位置,此时栈的情况如下:当执行到 方法里调用 的语句时, 方法被压入栈中,此时 位于栈顶, 方法在栈底,调用栈结构变为:在 方法内部执行调用 的语句后, 方法被压入栈顶,此时栈内从上到下依次是 、、,结构如下:接着, 方法里调用 , 会被压入栈顶,此时栈内元素顺序变为 在最顶部,然后依次是

2025-03-20 11:15:29 521

原创 项目启动报java: 警告: 源发行版 17 需要目标发行版 17【检查Maven配置】,查找原因

最后发现,还有一个地方是有问题的,因为本人在本地装了两个版本的jdk,17和1.8,即便我环境变量设置了JDK17的路径,但是在project structure中Platform Settings:SDKs中的JDK home path中还是指定了1.8的路径。随后,把这里更改为JDK17的路径之后,运行正常了。

2025-03-19 17:28:05 300 1

原创 解决同一订单重复推送的问题

入库操作后,再把redis里的key值撤销,这样就可以实现同一个id的工单进来的时候,可以判断redis是不是存在这个id的工单,如果存在直接不操作,进行返回,不过不存在,就进行下一步的操作。最近遇到了一个订单并发重复推送的问题,导致同一工单id的工单会重复入库。入库操作前,先把工单id作为key写入redis,

2025-02-20 11:48:19 353

原创 为不同订单上不同的锁,解决并发问题

为了实现对不同订单使用不同的锁,可以使用显式的锁机制,例如,或者更高级的并发工具,例如结合自定义锁对象。假设我们有一个订单处理系统,每个订单的处理需要同步以避免并发问题(比如资源共享等的相关问题)。我们可以通过为每个订单分配一个唯一的锁来实现这一点。以下是一个示例代码,展示了如何使用。

2025-02-20 10:35:42 246

原创 (避免遗忘)vue的组件间页面跳转功能

component: () => import('@/views/did/cpt/index') :表示定位到组件所处的文件位置。meta: { title: '凭证服务列表', icon: 'user' }:组件的显示信息,页面标题啥的。通过params传参,但是需要name指定要接参的路由,否则参数传不到。redirect: 'index':表示要嵌套在内层。name: 'cptList' :路由名称。

2024-07-25 13:40:10 396

原创 记录一下过滤器和拦截器的学习

但是springboot提供了一个servelet程序,叫做dispatchServelet(前端控制器),所以过滤器放行后会到dispatchServelet,然后再进入拦截器Interceptor放行代码逻辑及其放行操作。放行后到contoller层,controller做出响应后,将响应返回返回->Interceptor->dispatchServelet->Filter->浏览器(客户端)2.拦截范围不同:过滤器会拦截所有的资源,而Interceptor只会拦截springboot环境内的资源。

2024-03-29 15:11:59 54

原创 类中成员变量static关键词作用

/因为用了static关键字修饰,静态成员变量age数据共享,在2的基础上+1变成了3。//静态成员变量age变成了2。

2024-03-21 14:10:38 436 1

原创 鉴于自己健忘的臭毛病,记录一下java中List集合中removeif方法的用法

3.listB.removeif(true或false),removeif方法判断括号中返回值,如果是true则在listB中删除当前元素r,false则不删除。2.listA.contains(r),判断listA是否存在r这个元素,返回true或false。注意:removeif()方法,括号中的变量返回值必须是。首先removeif是筛选删除掉集合中的指定元素,例如。解析:1.r是遍历listB的当前元素。

2024-03-07 16:20:27 2252 1

空空如也

空空如也

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

TA关注的人

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