- 博客(13)
- 收藏
- 关注
原创 MySql事务隔离级别
在会话a执行a1和a2,开启一个事务,并执行更新操作,这时候不提交,再执行一次b2,再一次查询User表,得到结果是修改后的王五。在会话a先执行a1和a2,开启一个事务,并执行更新操作,这时候不提交,新开一个会话执行b1做查询,得到结果还是张三和李四。在会话a先执行a1和a2,开启一个事务,并执行更新操作,这时候不提交,新开一个会话执行b1和b2,得到结果是张三和李四。在会话a先执行a1和a2,开启一个事务,并执行更新操作,这时候不提交,新开一个会话执行b1和b2,得到结果是张三和李四。
2024-07-17 20:45:21
297
原创 图解JDK1.7中HashMap头插法扩容造成的死循环问题
假设有两个线程同时扩容,都需要数据迁移,线程A和B都执行到了。线程B分到了时间分片,继续执行。如图所示,已经形成了死循环。先来看一下扩容的源码。
2024-04-22 20:15:26
712
原创 Spring之深入解析AOP
获取拦截器链,把通知增强器对象(MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice)包装成了拦截器,其中。在解析XML时,如果是环绕通知、后置通知、异常通知,注册的通知增强器对象,直接实现了MethodInterceptor接口。,因为目标类有多个方法,所以在执行方法时,判断当前执行的方法是否是切入点,如果是切入点,则执行拦截器的。在【目标对象】中定位【切入点】,【织入】对应的【通知】,就变成了【代理对象】参数传进去,所以在调用方法时,会执行。
2024-03-11 23:18:42
949
1
原创 RocketMQ—消费者
通过负载均衡算法为当前消费者分配了新的消息队列之后,需要更新新分配的消息队列MessageQueue和处理队列ProcessQueue的关系。如果锁定失败,表示新增消息队列失败,这个队列可能还再被其他消费者消费,那么本次重平衡就不再消费该队列。这就涉及到如何将多个消息队列分配给等多个消费者的问题。来专门处理多个消息队列和消费者的对应关系,并且提供了多个不同的消费者负载均衡策略,即如何分配消息队列给这些消费者。集合中,后续异步的消费,自动执行拉取消息的请求,这就是Push模式下最初的拉消息请求的来源。
2023-11-12 20:43:00
1037
1
原创 Java17的踩坑点
模块化,模块系统将 Java 分成了若干个可以独立部署和运行的模块,使得 Java 应用可以更快地启动并更好地利用硬件资源。但在 java 模块化之后,有些内部类不能被访问了,在运行时报错。比如我在使用 DTS 的 sdk 时候,报如下错误,导致不能启动。如果是在 idea 启动程序,在 vm options 添加参数。解决方法,在运行程序的命令加上参数。如果是命令行启动程序,
2023-06-10 10:51:04
749
1
原创 Maven:relativePath标签
relativePath</code>允许你选择一个不同的位置,Maven首先在当前构建项目的反应器中查找父pom,然后在此位置查找。签出中父<code>pom.xml</code>文件的相对路径。并且必须与给定位置中的文件匹配,否则它将返回到POM的存储库。默认值为<code>…/pom.xml
2023-05-22 14:13:40
417
1
原创 Collectors.toMap方法
如果其中一个 value 为 null,toMap 方法就会报 NullPointerException 错误,运行以下代码就会报错。可以将 List 转换成 Map,toMap 有三个重载方法。会要求 value 不为 null,否则也是报 NPE 异常。方法,如果 value 为 null,直接报 NPE 异常。重载方法二调用重载方法三,所以直接看重载方法三。,会要求 value 不为 null。方法,传入了key 和 value。参数,也是一个函数式接口,调用。
2023-03-06 21:26:05
946
原创 System.getProperties()和System.getenv()的应用
vm option : jvm参数Program arguments : 程序参数(空格分隔),main 方法的 args 参数Environment variables : 环境变量在程序启动时会执行} }方法是通过来获取系统属性方法是通过来获取环境变量,包括在 Environment variables 中自定义的变量} }
2023-03-01 21:59:46
291
原创 Spring循环依赖问题
Spring中单例Bean实例创建的三个步骤:创建对象,createBeanInstance填充属性,populateBean初始化操作(调用初始化方法),initializeBean。
2022-11-13 22:17:29
55
原创 把java项目打包成docker镜像
原文链接:https://blog.youkuaiyun.com/u013768867/article/details/103715437。docker run -itd --name test -p : test:v1.0。4、把 test.jar 包和 dockerfile 放在 linux 服务器的同一个目录中。3、创建 dockerfile 文件,文件名为 dockerfile,没有扩展名。1、把服务打包成jar包,这里是 test.jar。5、构建docker镜像。
2022-11-12 22:15:24
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人